{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "machine_shape": "hm",
      "gpuType": "T4"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "757d121cbd2f45359bf778d8250b7859": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_75c50f34d8cd471fb05203aa5625d0bf",
              "IPY_MODEL_38c143e20856418983b9049629878525",
              "IPY_MODEL_137cf7347ebf479ebdd1bc9db6f4a624"
            ],
            "layout": "IPY_MODEL_ab49aa65590b4e13886aded2bffd3eca"
          }
        },
        "75c50f34d8cd471fb05203aa5625d0bf": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a135bfcd4e8a48238eb82476fbdd1ebc",
            "placeholder": "​",
            "style": "IPY_MODEL_b77a21cc59a54f7a96bc872111bdea47",
            "value": "Dl Completed...: 100%"
          }
        },
        "38c143e20856418983b9049629878525": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9b2c3de1df3e489cbde665fcea868797",
            "max": 5,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_973d13d8d21f4e6aad67d0854ac1ddcd",
            "value": 5
          }
        },
        "137cf7347ebf479ebdd1bc9db6f4a624": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_5d565427bdbb427a912934c2cf4bb5ff",
            "placeholder": "​",
            "style": "IPY_MODEL_ed1deecdecf24b36b5e694549373e4a4",
            "value": " 5/5 [00:00&lt;00:00, 15.28 file/s]"
          }
        },
        "ab49aa65590b4e13886aded2bffd3eca": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a135bfcd4e8a48238eb82476fbdd1ebc": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b77a21cc59a54f7a96bc872111bdea47": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "9b2c3de1df3e489cbde665fcea868797": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "973d13d8d21f4e6aad67d0854ac1ddcd": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "5d565427bdbb427a912934c2cf4bb5ff": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ed1deecdecf24b36b5e694549373e4a4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "source": [
        "# Install the latest JAXlib version.\n",
        "!pip install --upgrade -q pip jax jaxlib\n",
        "# Install Flax at head:\n",
        "!pip install --upgrade -q git+https://github.com/google/flax.git"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "aab242HwitPK",
        "outputId": "a4e66236-16b1-428b-f361-53aa7e4f5bb0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/1.3 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/1.3 MB\u001b[0m \u001b[31m7.5 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━\u001b[0m \u001b[32m1.2/1.3 MB\u001b[0m \u001b[31m20.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m14.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
            "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.4/71.4 MB\u001b[0m \u001b[31m21.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Building wheel for jax (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
            "  Installing backend dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m81.4/81.4 kB\u001b[0m \u001b[31m3.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Building wheel for flax (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import jax\n",
        "from typing import Any, Callable, Sequence\n",
        "from jax import lax, random, numpy as jnp\n",
        "from flax import linen as nn"
      ],
      "metadata": {
        "id": "GZTlLQbBi8vo"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ETA6fo_89KbM",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 84,
          "referenced_widgets": [
            "757d121cbd2f45359bf778d8250b7859",
            "75c50f34d8cd471fb05203aa5625d0bf",
            "38c143e20856418983b9049629878525",
            "137cf7347ebf479ebdd1bc9db6f4a624",
            "ab49aa65590b4e13886aded2bffd3eca",
            "a135bfcd4e8a48238eb82476fbdd1ebc",
            "b77a21cc59a54f7a96bc872111bdea47",
            "9b2c3de1df3e489cbde665fcea868797",
            "973d13d8d21f4e6aad67d0854ac1ddcd",
            "5d565427bdbb427a912934c2cf4bb5ff",
            "ed1deecdecf24b36b5e694549373e4a4"
          ]
        },
        "outputId": "67dfe5d8-96ae-4184-be38-4aaf5831f9ed"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Downloading and preparing dataset 11.06 MiB (download: 11.06 MiB, generated: 21.00 MiB, total: 32.06 MiB) to /tmp/tfds/mnist/3.0.1...\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Dl Completed...:   0%|          | 0/5 [00:00<?, ? file/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "757d121cbd2f45359bf778d8250b7859"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Dataset mnist downloaded and prepared to /tmp/tfds/mnist/3.0.1. Subsequent calls will reuse this data.\n"
          ]
        }
      ],
      "source": [
        "import tensorflow as tf\n",
        "# Ensure TF does not see GPU and grab all GPU memory.\n",
        "#tf.config.set_visible_devices([], device_type='GPU')\n",
        "\n",
        "import tensorflow_datasets as tfds\n",
        "\n",
        "data_dir = '/tmp/tfds'\n",
        "\n",
        "# as_supervised=True gives us the (image, label) as a tuple instead of a dict\n",
        "data, info = tfds.load(name=\"mnist\",\n",
        "                       data_dir=data_dir,\n",
        "                       as_supervised=True,\n",
        "                       with_info=True)\n",
        "\n",
        "data_train = data['train']\n",
        "data_test  = data['test']"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "info"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jfeRh5gRE70P",
        "outputId": "e7c02136-5a85-4de4-bac4-9101b1d058c4"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "tfds.core.DatasetInfo(\n",
              "    name='mnist',\n",
              "    full_name='mnist/3.0.1',\n",
              "    description=\"\"\"\n",
              "    The MNIST database of handwritten digits.\n",
              "    \"\"\",\n",
              "    homepage='http://yann.lecun.com/exdb/mnist/',\n",
              "    data_path='/tmp/tfds/mnist/3.0.1.incompleteQW1GWM',\n",
              "    file_format=tfrecord,\n",
              "    download_size=11.06 MiB,\n",
              "    dataset_size=21.00 MiB,\n",
              "    features=FeaturesDict({\n",
              "        'image': Image(shape=(28, 28, 1), dtype=uint8),\n",
              "        'label': ClassLabel(shape=(), dtype=int64, num_classes=10),\n",
              "    }),\n",
              "    supervised_keys=('image', 'label'),\n",
              "    disable_shuffling=False,\n",
              "    splits={\n",
              "        'test': <SplitInfo num_examples=10000, num_shards=1>,\n",
              "        'train': <SplitInfo num_examples=60000, num_shards=1>,\n",
              "    },\n",
              "    citation=\"\"\"@article{lecun2010mnist,\n",
              "      title={MNIST handwritten digit database},\n",
              "      author={LeCun, Yann and Cortes, Corinna and Burges, CJ},\n",
              "      journal={ATT Labs [Online]. Available: http://yann.lecun.com/exdb/mnist},\n",
              "      volume={2},\n",
              "      year={2010}\n",
              "    }\"\"\",\n",
              ")"
            ]
          },
          "metadata": {},
          "execution_count": 4
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "plt.rcParams['figure.figsize'] = [10, 5]\n",
        "\n",
        "ROWS = 3\n",
        "COLS = 10\n",
        "\n",
        "HEIGHT = 28\n",
        "WIDTH  = 28\n",
        "CHANNELS = 1\n",
        "NUM_PIXELS = HEIGHT * WIDTH * CHANNELS\n",
        "NUM_LABELS = info.features['label'].num_classes"
      ],
      "metadata": {
        "id": "jh2FYWKsU1qd"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def preprocess(img, label):\n",
        "  \"\"\"Resize and preprocess images.\"\"\"\n",
        "  return (tf.cast(img, tf.float32)/255.0), label"
      ],
      "metadata": {
        "id": "k4Sna9QeE5Ea"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "data_train_vis = data_train.map(preprocess)"
      ],
      "metadata": {
        "id": "QhkUPmYCXE6h"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "i = 0\n",
        "fig, ax = plt.subplots(ROWS, COLS)\n",
        "for image, label in data_train_vis.take(ROWS*COLS):\n",
        "    ax[int(i/COLS), i%COLS].axis('off')\n",
        "    ax[int(i/COLS), i%COLS].set_title(str(label.numpy()))\n",
        "    ax[int(i/COLS), i%COLS].imshow(np.reshape(image, (28,28)), cmap='gray')\n",
        "    i += 1\n",
        "\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 396
        },
        "id": "1r9_g4xZ4AO6",
        "outputId": "f877d37b-58dc-420d-933c-1f1a84d94659"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1000x500 with 30 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAAF7CAYAAABVd/2EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d3Dc533n/97eey9YLDqIxiaxSSyiaEuWI1muip3E8cUe20ksnyeZSyY38eXG+cnXcpOcz5OLc0nkZGy5xLbsWK6SLMqkxCZ2ondge++9/P7gPY92AZAEIZC7CzyvGYzsXQB89sHzfZ7n094fTrVarYLBYDAYDAaDwWAwNhFuowfAYDAYDAaDwWAwth7M0GAwGAwGg8FgMBibDjM0GAwGg8FgMBgMxqbDDA0Gg8FgMBgMBoOx6TBDg8FgMBgMBoPBYGw6zNBgMBgMBoPBYDAYmw4zNBgMBoPBYDAYDMamwwwNBoPBYDAYDAaDsekwQ4PBYDAYDAaDwWBsOszQYDAYDAaDwWAwGJtOSxkazz33HDgcDoaGhho9lKYnlUrhL/7iL/D4449Dq9WCw+Hg61//eqOH1RLk83n86Z/+KaxWKyQSCfbv34+XX3650cNqej7xiU+Aw+Hc8svtdjd6iE3N9PQ0fvM3fxN2ux1SqRT9/f340pe+hEwm0+ihNTVsr9s4Fy5cwOc+9zkMDg5CJpPB4XDgIx/5CKampho9tKaH7Xcbhz2z74xLly7hqaeeglarhVQqxdDQEL7yla80eli3hN/oAawXl8uFL3/5y5DJZI0eSksQCoXwpS99CQ6HAzt37sTJkycbPaSW4ROf+AS+973v4Qtf+AJ6enrw9a9/HU888QRee+01PPzww40eXtPymc98BidOnKh7rVqt4rOf/SycTidsNluDRtb8LC8vY9++fVCpVPjc5z4HrVaLM2fO4C/+4i9w8eJF/OhHP2r0EJsWttdtnP/23/4b3njjDXz4wx/GyMgIfD4fvvrVr2LPnj04e/Ysc+rdBrbfbRz2zG6cX/7yl3jyySexe/dufPGLX4RcLsfs7CxcLlejh3Zrqi3CM888Uz1+/Hj16NGj1cHBwUYPp+nJ5XJVr9dbrVar1QsXLlQBVJ9//vnGDqoFOHfuXBVA9X/8j/9BX8tms9Wurq7qwYMHGziy1uTUqVNVANXnnnuu0UNpap577rkqgOqNGzfqXv/4xz9eBVCNRCINGlnzw/a6jfPGG29U8/l83WtTU1NVkUhU/a3f+q0Gjap1Yfvd+mDP7MaIx+NVk8lUff/7318tl8uNHs66aYnUqV//+tf43ve+h7/5m79p9FBaBpFIBLPZ3OhhtBzf+973wOPx8OlPf5q+JhaL8clPfhJnzpzB8vJyA0fXerzwwgvgcDj42Mc+1uihNDWJRAIAYDKZ6l63WCzgcrkQCoWNGFZLwPa6jXPo0KFVa6unpweDg4MYHx9v0KhaF7bfrQ/2zG6MF154AX6/H8899xy4XC7S6TQqlUqjh3VHmt7QKJfLePbZZ/GpT30Kw8PDjR4OY4tz+fJl9Pb2QqlU1r2+b98+AMCVK1caMKrWpFgs4rvf/S4OHToEp9PZ6OE0NceOHQMAfPKTn8SVK1ewvLyM73znO/g//+f/4POf/zxLGWXcN6rVKvx+P/R6faOH0lKw/Y5xr3nllVegVCrhdrvR19cHuVwOpVKJ3//930cul2v08G5J0xsaf/d3f4fFxUX85V/+ZaOHwtgGeL1eWCyWVa+T1zwez/0eUsvyi1/8AuFwGL/1W7/V6KE0PY8//jj+8i//Ei+//DJ2794Nh8OB3/zN38Szzz6Lv/7rv2708BjbiG9+85twu9145plnGj2UloLtd4x7zfT0NEqlEt73vvfhsccew/e//3383u/9Hv7u7/4O/+7f/btGD++WNHUxeDgcxn/6T/8JX/ziF2EwGBo9HMY2IJvNQiQSrXpdLBbT9xnr44UXXoBAIMBHPvKRRg+lJXA6nThy5Ag++MEPQqfT4Sc/+Qm+/OUvw2w243Of+1yjh8fYBkxMTOAP//APcfDgQfzu7/5uo4fTUrD9jnGvSaVSyGQy+OxnP0tVpj7wgQ+gUCjga1/7Gr70pS+hp6enwaNcTVMbGn/+538OrVaLZ599ttFDYWwTJBIJ8vn8qtdJWFIikdzvIbUkqVQKP/rRj/DYY49Bp9M1ejhNz7e//W18+tOfxtTUFOx2O4CbB0ilUsGf/umf4qMf/SibR8Y9xefz4b3vfS9UKhWtVWOsD7bfMe4H5P7x0Y9+tO71j33sY/ja176GM2fONKWh0bSpU9PT0/j7v/97fP7zn4fH48HCwgIWFhaQy+VQLBaxsLCASCTS6GEythgWiwVer3fV6+Q1q9V6v4fUkvzwhz9EJpNhaQTr5G//9m+xe/duamQQnnrqKWQyGVy+fLlBI2NsB+LxON7znvcgFovh5z//Odvn7hK23zHuB+S5XCkaYjQaAQDRaPS+j2k9NK2h4Xa7UalU8PnPfx4dHR3069y5c5iamkJHRwe+9KUvNXqYjC3Grl27MDU1RVWACOfOnaPvM+7MN7/5Tcjlcjz11FONHkpL4Pf7US6XV71eLBYBAKVS6X4PibFNyOVyePLJJzE1NYWXXnoJAwMDjR5Sy8H2O8b9YO/evQCwqhkkqR1t1hKDpjU0hoaG8OKLL676GhwchMPhwIsvvohPfvKTjR4mY4vxoQ99COVyGX//939PX8vn83j++eexf/9+tLW1NXB0rUEwGMQrr7yC97///ZBKpY0eTkvQ29uLy5cvr+rI/K1vfQtcLhcjIyMNGhljK1Mul/HMM8/gzJkz+Nd//VccPHiw0UNqOdh+x7hfkPqff/zHf6x7/R/+4R/A5/OpemGz0bQ1Gnq9Hk8//fSq10kvjbXeY9Tz1a9+FbFYjFq7P/7xj2n3yGeffRYqlaqRw2tK9u/fjw9/+MP4sz/7MwQCAXR3d+Of//mfsbCwsOrhZqzNd77zHZRKJZZGcBf8h//wH/Czn/0Mhw8fxuc+9znodDq89NJL+NnPfoZPfepTLJXlDrC9bmP88R//Mf7t3/4NTz75JCKRCL7xjW/Uvf/bv/3bDRpZ68D2u43Bntm7Z/fu3fi93/s9/NM//RNKpRKOHj2KkydP4l//9V/xZ3/2Z017TnCq1Wq10YO4G44dO4ZQKIQbN240eihNj9PpxOLi4prvzc/PM63vW5DL5fDFL34R3/jGNxCNRjEyMoK//Mu/xGOPPdboobUEBw8exNzcHDweDysovQvOnz+P//yf/zMuX76McDiMjo4O/O7v/i7+5E/+BHx+0/qEmgK2122MY8eO4fXXX7/l+y12PWgIbL/bGOyZ3RjFYhFf/vKX8fzzz8Pj8aC9vR1/+Id/iC984QuNHtotaTlDg8FgMBgMBoPBYDQ/TVujwWAwGAwGg8FgMFoXZmgwGAwGg8FgMBiMTYcZGgwGg8FgMBgMBmPTYYYGg8FgMBgMBoPB2HSYocFgMBgMBoPBYDA2HWZoMBgMBoPBYDAYjE2HGRoMBoPBYDAYDAZj01l3FygOh3Mvx9EybKTtCJu7m7C52zh3O3ds3m7C1tzGYXO3cdjcbRw2dxuHzd3GYWfsxljPvLGIBoPBYDAYDAaDwdh0mKHBYDAYDAaDwWAwNp11p04xGAwGg8FgMBiM5oHD4YDD4UAqlUKlUkEsFsNisUAikSAQCCAcDqNQKCCVSqFSqaBQKKBSqdy38TFDg8FgMBgMBoPBaEF4PB54PB50Oh16enpgMBhw/PhxGI1GnDlzBlevXkU0GoXL5UIul0MikUChULhv42OGBoOxTsjDLBaLoVQqwePxIBKJwOVykcvlkM/n6UNcqVQ2VJjHYDAYDAaDsR44HA5UKhXkcjnsdjs6Ojqg1+thNpuh1+ths9kQj8ehUChQKBSQTqeRzWbvq6HBqa7zNsQq7G/CVB02TivPHYfDgVqthlwux+DgII4fPw61Wg2n0wmJRILJyUnMz89jamoKL7/8MtLpNEql0qYZG0wRY2O08pprNGzuNg6bu43D5m7jsLnbOK16xgoEApw4cQJ79+5FR0cH9u7dS1OoBAIBkskk0uk0lpaWcPbsWfj9fvz0pz/F4uLipvz765k3FtFgMNaJUCiEVCqF0WjEjh07YDAY0N/fD7lcDrFYDIFAgEwmA4lEQnMgy+Vyo4fN2KJwuVyam8vj8QC8vemXy2W29v4fXC4XPB6v7mJQLpdpjvJWizxyOJy6tbGSarVKP3PtZ699ncFoRsjaJs8zWbO1z/N2gcyFUCiE2WxGd3c3Ojs70dvbC6FQSL9PqVQCAPh8PpaXl1GtViESie7rWJmhwWCsAy6XC51OB7vdDqfTia6uLqhUKohEInA4HNhsNojFYshkMqRSKQQCAVy4cAF+v5+lUTE2DQ6HAz6fDx6PB6fTCYvFArPZjOHhYQgEAuRyORQKBbz55pt48803US6X72uIvJkgl+0dO3bg8OHDkMlkkMvl4HA4OHv2LK5fv45sNotoNLqlLikGgwF79uyBQqGAWq2GRCKh72WzWXi9XuTzeWQyGeTzeRSLReTzeWSzWfh8PuTz+QaOnsFYG7lcDqlUip6eHpw4cQIikQiRSATZbBbnzp3DxYsXt8U5SwwMtVqNPXv2wGg04ujRo9i7dy9UKhX4/PprPTHG0uk03G43PB4PcrncfR0zMzQYjHXA4XCgVCphtVphs9nQ1tYGqVRK3zeZTDCZTJBKpchms3C73ZidnUUwGGSeQsamweFwIBAIIBQK4XQ6sXPnTgwODuJ973sfJBIJ4vE4MpkMisUiLl26RC+S23H9Ec9nV1cXPvzhD0On08FgMIDL5YLP5yMQCCAajSIej28pQ0Or1eLQoUMwGo1wOBxQqVT0vVgshuvXryOZTCISidB87UQigXg8jkgkwgwNRtNBFJU0Gg1GRkbwqU99CkqlEgsLC4hGo0in07h06dK22OeIoaFSqXDgwAE4nU48+OCD6O/vp9+zMlJZqVSQyWTg9/sRDAbvu/NpSxgafD4farUaYrEYdrsdFosFsVgMy8vLyOVyCIVC992Ca3ZIWF0sFsPhcEAmk9EFHIlEsLi4iGKx2OhhNhw+nw+lUgmpVIre3l6MjIzA4XDQVJWVyGQyOBwOCAQCdHV1oVQqIRQKIRQK3eeRM5oZLpdLhQTIF8mrrU17EQqFEAgE4PP5NBxeLBbB5XIxPDyMwcFBut7I76xWqxAKheDxePR3bYcDeCU8Hg8CgQASiQQajYbKPnI4HDidTuzduxfz8/Pw+/0ol8stO0dkrZjNZhiNRvT29qKnpwdarRYGg6HOISIWi1EoFJDNZpFKpaiIBTE29Ho9EokE/H4/otEocrkckslky84NY+sglUqh1+tp7QGXy4VMJkOlUoFCoYBMJqPRua28XhUKBQwGA9rb2+F0OtHe3g6FQlH3PdVqFYVCAaVSicrbjo2NYWFhAeFwmEU0NoJYLEZfXx+MRiM+8IEP4MSJE7hx4wZ+8IMfwOv14uzZs/D5fI0eZlNBvHp6vR7vec974HQ66YXm8uXLeOGFF5BIJLb0A7sexGIxOjs7YTAYcOLECTzyyCOQSqV1OZC16HQ6PPjggwiHw/B4PDCbzXjrrbcQDoe3/Vwy3kYgEECj0UAgEEAkEkEgEMDhcGBgYAACgYAepBqNhh6iWq0WxWKRpr7s2bOHfj/JuZXJZBCJRJBKpRAIBCiVSg3+pI2BGGnEyLDb7VCr1dToOnDgABwOB06fPo1r167RQ7kVn1Eejwc+n4/du3fj+PHjcDgcOHLkCBQKBTViCZVKBf39/TSds/a/6XQa8/PziMVieO2113DlyhX4fD7MzMxs23XEaA44HA70ej26u7thsVhoVFev10OhUMBoNMJgMCCdTiMUCm3p+jSLxYL9+/fD6XTi4YcfhtVqXVVzUS6XkUgkkMlk8Oabb+Ly5cuYm5vD2bNnacT7frIlDA0ejwelUklD4yaTCV6vF3K5HBKJ5Jbe5+2MSCSCWq2GwWCA1WqF1WqFQCAAj8fD8vIyxGIxstksSqXSlkoruBvIZUWv18NkMlGvKJ/Pv6XiBPEqy2Qy6h1c6W1oRbhcLpRKJcRiMb3YlMtlukbut1xeK0EihVwuF2KxGFKpFBKJBEajEUKhkAoJtLW1wWazUYOfx+NRpTOZTAaNRkOfx0KhAK1WC7lcXvfvALhtIfB2QiaTQa1WQ6FQ0AgPcNPbJ5VK6dySfa8VoxpcLpeKURgMBlgsFhrFEIvFq75/5ZqoLQoXCoXIZDIQi8Uwm82wWCwoFAq0Dq1VDbH7AUlpJJFJEjnj8XjUiCPedpYpsH5qo7rkvqJSqWgxONlX+Xz+lt/3yPpSKpUwGo3Q6/WQSqV1EctqtYpSqYRcLodAIIB4PA6PxwOPx4NQKETrsu43W8LQkEgkGBwcRE9PD8xmM6rVKng8HqRSKWQyGTM01qCzsxPvete7YLVacfz4cZjNZvqgZjIZtLe3QyKRwO/3I5vNNnq49x1ymdbr9Th+/DhVcyAHyJ2QSCQ4cOAA+vv74Xa78etf/7qlD2mZTIb3v//9GBoaoheaUCiE8+fPIxQK4c0338Ts7Gyjh9lUkIsGj8ejaTt79uzBoUOHoFAoYLfbIRaLqaEhFotpsTLxQvP5fGp4CAQCVKtVWK1WlMvlLWHA3iv4fD5GRkawa9cu7NmzBwKBoO59gUBAD2m5XI5sNtuSyjUSiQQPPvggbDYbjh8/jsOHD0MikaxpZNwOkkZrs9lgMBjA4/EwODiIixcvIp1OIx6Pw+fzsRTkWyASiWC326FUKvHwww9jcHCQGrOJRAInT56Ex+PB+Pg45ubmGj3clkEkEqGzsxNqtRpHjx7F4cOHYTAYIJFIwOVyUSqVUCgUaESyFZ0F64HH48FsNkOlUmHv3r04ceIEtFotVZQiZLNZxGIx+Hw+vPDCC5idnYXL5YLP50M2m22YkbslDA0+nw+dTgeLxQKpVEoXGjnkt6qFu1FIT4j+/n5YLBa0tbVBr9fT93U6HRQKBVKp1LY10rhcLr2MtLW1oaOjA2q1et3zIRAIYDabodFooNFoWn4NCgQCdHd3Y+/evXQ+3G43UqkU3G43RkdHweVy76rw/VZzslUOCuJpI+tILpejvb0de/bsgUqlgsPhgEQioalTt5IdBVBnfCiVyi0zR/cCYuAZjUZ0dXXBaDTWpQ/VSgLz+Xz6N6r9nlaBz+fDZDKhvb0dbW1tsFqtdbKfhFv9b6B+PmQyGaRSKRwOB9RqNUKhELRaLcrl8io1m+1M7d5FvO5qtRo6nQ47duzAgQMHqOc5FArB7XaDy+XC5XI1cNStB6m/NRqNaGtrQ2dnJ6RSKfh8PpW1JQZGKzoK1guHw6FZEiaTCQ6HA3K5fFUKd6lUQiaTQSQSwdjYGG7cuIF4PI5UKtWgkd+kpXcOUuin0+ngdDrR0dEBLpcLr9eLxcVFjI6Owu/3N3ySmwUOh0PTydra2jA0NASdTkflD8lDS4oDc7ncln1w70RXVxcefPBBOBwO9PT0UCO2lnK5jHg8jmKxCIVCser92sthqyIQCCCXy+kGZzabqSddoVBg586daGtrQywWg0ajQTQapZK+AKisXq0nVCAQwGAwQCwWU+9rsVik6QV+vx+ZTKZl1brI57JYLNi3bx9UKhXMZjPkcjm6urrQ0dFBe7LweDzEYjFks1kqOZrL5ajMaLFYRLlcpuvxVrVBwM38+3w+TzvUkwN4O0HSftRqNXbu3Im9e/dCp9PVOQjImgwGgwiHw0gmk0ilUi1Zh0BSdUh6GACk02laxxOLxVAoFOhFLJ1OY3l5Gfl8nkawOzs7MTIyAqlUCq1WS89VHo+Hvr4+PP7443C5XPjRj36EdDrdks/kRiDpOGQf4vP5kMlk4PP5UCgUNAJJ0vP6+vqgVqsxMDAAo9EIkUgEPp8PkUgEo9GIXC5Xl+rIuD0cDgcSiQQ7duygRc+18q3FYhE+nw/hcBh+vx+JRIL2r9oqkJQ8iURCxT+Gh4eh1WppGnNt4ff09DROnToFj8eDxcVFOieNpqUNDaFQCKVSCa1WC4fDgc7OTvj9fvh8PiwuLmJ8fByhUIgZGv8PYmhoNBq0t7djcHCwLvRGwpC5XA6ZTIamE2xHOjo68PTTT8NoNKK7u5vOU+0hWyqVEIlEkMlk6IFfC8kfbeVohlAohFarhV6vh9FohNlshlAoRLVahVwux/DwMFWw0el0mJubw+joKK0lqFarCAaDdetIJpOhra0NGo2Ghn+JFyaVSlHDpFX7j0gkEqhUKvT29uIjH/kIjRqqVKpVOcSlUgnRaBTBYBDJZBLhcBixWAzXrl1DPB6ntS+PPvoodu3adUdDI5PJ0Gd3K6cS3AqRSISOjg6YzWaMjIxgz549q76nWq0ilUohFAohEok0hcdvo5DLWK13M51OY3Z2FolEAi6Xi142isUiAoEA3nzzTSSTSVoHdPz4cSgUCmi1WnqRJmnHvb29kEqlmJmZwalTp6hHfquvqdp+NaRYXiwWQ6PRQCwWw2q1Qq1Ww2Qywel0QqlUoq+vj0qg63Q6+ruIocHSHdcP2SelUin6+/sxMDAAh8NBo7nkcu31euHxeOD3+5FMJreUkQGANuSTyWQYHBzE0aNHYbFYoNFo6mrOiJLczMwMXnrpJYTDYbhcrqbZ11ra0JDJZLDb7bBarXU5e+SgJd7Brbb4NgrpBWEymaiMZi3FYrFu3vL5/LaaO5JSJpVKYTabodfr10yXKpfLKBaLiMViuHHjBsLhMIaGhuoKwcnvq1W/KRaLKBQKLXFIC4VCiEQimEwmPPDAAzCbzTR3u3bdEAlRk8mEQqFAm6IR73C1Wl11kauVVCaKSvl8HolEAul0GkKhEKFQCF6vF16vtyU6rHO5XOpV7unpQVdXF03bUSqVNNSfzWZptJAU583PzyMYDCKTySCRSCCVSmF5eZkW5pJiZcJK44FEziqVChKJBJ1HEg3ZTpD0H1LkXWvUVSoV6kxxu924ceMGlpaWWjKSQSiXywgEAlAoFDTl1efz4erVq4jH49TRRj57LBZDKpVCNpulz7LL5cJbb70Fk8lE1c2Ix5448zQaDSwWCyKRCGKxGBKJRKM/+qZAHEGk8WUtJK2OzBMpuBeJRNDr9dRpR+ZNo9FAJpOtcgaQFJ+tnNqz2RAlKbvdTs8e4sgrlUpIp9OIxWKYnp7G3NwcAoFAS5yrd4tUKkVnZye0Wi2sVit1BtTua+VyGXNzc1hYWMDY2BgikQgSiURT7WstbWhYLBYcO3YMNpsNWq0WPB4PmUyG9i0gmyJ7uG/C5XLR3t6OXbt2oaOjoy7ntlqtUq9yNBrdlnMnEAjQ19dX1wCHKATVksvlEI1GsbCwgK9//euYmprChz70Ibz73e+GXq9HV1cXzfnm8Xg09SiTySAcDrfE5U+pVEKv1+OBBx7AH/3RH8FisUCpVFIFGuDtXHiJRIJdu3ZhaGgIpVKpruCMeANr11GtQgv5IodxLpfD1NQUwuEwfvzjH+OnP/0pTeVr5oNEKBSio6MDer0e73vf+/C+972PplZwuVyUy2Xk83l4vV4sLS3B4/Hg5MmTCIfDdY0dyVwVCgXaK4MIMwA353OlAUF6bBSLRSwtLVEDjUQkm3neNhsi4ECaZ9ZSqVRoxOzUqVP4/ve/j0Qi0dJiF7lcDteuXcPS0hJtErq4uIiXX34ZiUSibq2QZ6w2vYTD4eDMmTO4evUqOjs7aYPDzs5Omi5qs9nA5XJx8OBB6HQ6XLp0CWNjY4382JsCiVoIBAIcPnwYTz31VJ2XmERUSYd1sVhMU3fEYjE1QkiKFVEjXOmYIs9sLpdrib2/GWhra8Ojjz4Ku92Offv20V5BAGj6n8vlwosvvohLly41/fmwUQwGA5588km0tbXhwIED6OrqWlV3XCgU8JOf/AQ//OEPEY1G4fV6USqVmKFB//H/96AS72m5XEYmk6HW/50WDpE8U6vV1HtFIhr5fH5bS7OuBYfDoc1eFArFqpSebDaLeDyOdDq9reaOFH5LJBKqqERqV4RCIZ0ncgkkxmwgEKCpeiSFqrZZEPk5oVAIuVyOcrnc9GlUxMMnl8thNBphMplgsVhgNBrrvm/lsymVSulnW6vY9FY/R14j31MoFJBKpSAWi2E0GqFSqZBOp5HP55vykCbRBKFQSAUpiFw0h8OhexlJg/L5fFRu0OVyIRgM0jzjlfD5fBoBI9FGEhUpl8tU9pE8p5VKBdFoFIFAAKlUatsZGcDbEQ2FQrFKaYo8u8lkkqartXrEu1Kp0IZ6wWAQcrkcXq+XpuKt57Ol02mk02nIZDKEQiGo1WpYrVYAb6d/SiQS6PV6xONxyOVyKtva6uuLfD61Wg273V5nJBA5X5VKBbVaTfdxEukgDgSSA0/meq26PHJ2tPJaux/Unj9msxkmk4lG1wiFQgHRaBThcJg6lO8Wcllv1r8JMYAVCgU9g4mjj0BkbBOJBILBINxuN42WN9tz2TBDg8/nw2azQaVSYXh4GHv37kUgEMCvfvUrRCIRmnN3O2QyGb0EkbzxWCwGl8uFcDjclAuokfB4PPT29uL48ePQarU0okHC6hMTEzh37hzGxsYaorXcKBQKBfr7+6HVavHkk09i9+7d0Ov1EIvFdZ2Vk8kkMpkMLl68iB/96Efw+/1YXFykxbepVAoqlapO9Yz04ejp6YHX60UoFGoqT0MtJP1HLBbj6NGjeOyxx2CxWFYVMJL0k1pI4SOAuk7UKw2rlV2qi8UiisUieDwe/R02mw16vR6HDh1CpVLBwsICXn311abJN61FLBZDq9XCZDLhQx/6EIaGhuBwOKhMdCAQQCwWw09/+lNMTU0hEokgFAohm83C7/ejUCggnU6v+bsrlQoikQgWFhagUqlw6tQp8Pl8xONxlMtl7NixA11dXQDerjv41a9+hfPnz8PtdjfdYXM/kEqlGBoaog1ca8lkMrhy5Qo8Hg9mZmaQSCRa3hgrlUoIhUKIxWKIxWKYmJig6a93e/4lk0mcPn0as7OzUCgUaGtroxdxuVyOQ4cOoa+vD5FIBPPz88jn8y3dNZxEH4RCIYxGI3p6elaJBlSrVdpAEwCNvpKordvtxvT0NADQNEdSI0RSZ0l0pNXX2r2Gw+FApVJBJpOhv78fjzzyCHQ6HVQqFYC3/x5erxevvPIKvefdLVwulzb6I+mFzfZ3sdvt6O7uRk9PDx544AFYLBZotVoAb0fbQqEQXn/9dXg8Hly7dg2xWKxp11jDDA1yqdHpdOjv78fRo0exsLCA8fFxVCoVxGKxOxoaxOIjHhbi7SNeeWZo1MPlcmE0GtHZ2bmqgVWlUkEgEMDk5CQ8Hk9Teo/vFSKRCBaLBRaLBf39/RgZGVmzkJscrMvLyzh79iyi0Sh9uEn9Ra0RQbzdJHUqm802tQoV0dKXyWTo6OjAvn37aKfpWsjnBW5ehmsLJ4HVUpq3i2iQeSOdXknzzWq1ivb2duowWOmdbhb4fD7kcjl0Oh2Ghoawf/9++jcmdTx+vx9vvfUWLly4gFQqdVf57UQX3e/3Y35+HjweD5FIBKVSiRaikn2uUChgdnYW165da1pj9l5DZKVtNtsqA5mo1CwsLCASiWyJnhAk5RXAO66byOVyWFhYQDqdRjQarfPQC4VCOBwO6HQ6mpZGnu1mvNisF5LeKpVKodFoVkn41n62SqWCYrFY1009EonQvhhyuRwikQgGg2GVo4V4zlt5ru415PxRKpUwGAzo6OiASqWqq3khDr+ZmRl4PB669u/235FIJFCr1SgUCk25hpVKJdrb29He3g6bzQaj0bjqvpZOpzExMYGFhQV4vd6m3s8aZmjU5iOT4qpMJkNDtoFA4JY/S3TndTod7HY7tFotuFwuCoUCPB4PRkdH4fV6t9Vl+XaQi6BIJKJfZNFWKhXkcjnkcjm43W6Mj48jFotti4uKQCCgiiC7d++mzapqDQwSGs/n87h27RomJydx5coVRCIRmmJ2u3QoUmDucDiQz+ebWoue1BmYzWaq8CESicDlclEsFrGwsIBoNAq3243FxUUaCeNyuTCZTKuaB90JUiieTCbR2dmJY8eO0UJ64O1C89t1Ym80IpEIOp0OWq22rn4FuLmH/fSnP4XH48H8/DxSqdRdRQpJlKJcLmNmZgalUglisRhqtRoSiQTVapWKYBBpavK13ZwsRAGop6eHijisNJDJ4ZxKpVh35jUoFos0nWxsbAwmk4k6pojQRbVapalpJIOgVdca6aKcz+dx/fp1vPjii2vWVxBIETKpQyuXy7QuhnRWl0gkkEql0Ov1EIlE1CAjDhV2J1kbElnq6upCT08PbY5L9v5qtQq/349QKITJyUnMzc0hGAxuuL6q1mhsRpxOJx599FGYTCZa50fOlng8XtfCgThOmpmG3nqIZ5TkY5dKJVqkPDk5uebPEGtUJpPBYDDA6XRCoVDQYquFhQVcvnwZmUyGHSb/D3JIkJ4FtfmO1WoV+XweqVQKi4uLuH79+rbxvIhEIigUClgsFuzfvx/t7e20Qzqh9nJy4cIFvPbaazQFiqyvOxkPGo0GXV1dSKVSTW1oiEQi9Pf302JQjUZD56JQKGB0dBTT09O4fPkyzpw5U5f21NPTA5PJdFf/HomihcNhnDhxAvv3719laJA6hGY1NMjeRfqC1K4dj8eD73//+1heXr5rIwN423tHpFjHx8ehVCrx4IMPwmw2o1KpQCaT0UOTfG0HJ8FKSESpu7ubyouujB6SPhLxeHxbpYauF+KoEwqFuHTpEvh8Pk0FJOcHj8eDWq2GVqu9o5Ol2SEGQKVSwaVLlxCNRm/7efL5PMLhMJWAJ71/YrEYje5IpVJ0d3djYGAACoWCOgSKxSKtG2XUQxyhYrEYAwMDOHz4MDo7OyGRSOrSuz0eDyYmJjA6OorJyUnE4/EN3VOIKAIxFpvtrsPhcNDV1YUnn3ySOvpqCYfDGBsbw+zsLC5evIilpaWm+wwraWhEg+R6k/QL8kXSVtaCFAoRCT7igcjn81R/n2wCzT759wuSTkDyEmupVCq0DwL5W2z1eSOFfCaTCR0dHeju7qbShCsNgUKhAL/fT9NXauUi1wvRwZZIJE15MJNNXq1Ww2KxwOFw0J4PBJIT6nK5EAgEqGePRDQ26lFJJpO3lGGVSCR1z3kzhrhJEy+SvlkLMfBFItEt6zDWQ23jQg6HA51OB6vVSgUdcrkcLSpv5vD5vUShUMDhcMBisdQJOACg+fH5fJ4Wkbay0tS9hGQaJJPJNQvKiVy3TCaDWCxuyv3sbiCfN5VKIRgM3tHQIPsVSZMl/WoA0Oe/Nu2W7FnEOGlWD3oj4fP5UKlUVKjGbDZDqVTSOyCJ1sZiMXi9XoTDYVqov1FIc9RmaGZHIGI9JH2sVtaclAWQhrbT09NwuVwts6YaamgQLe+7ORy5XC4cDgf6+vpoh91qtYpQKESVREg4t9kuJY1CrVbj0UcfhcPhgNPprHuvUCggEAjQC/RWnzNSMyEWi3H48GF88IMfhE6nQ09PD+3UXEsymcQbb7yB5eVlnD9/HpOTk1RJaD2QzcNqtWJpaWnV728G5HI52tvbYbVacfjwYezcuRNyuXxVfcqVK1fw2muvIRqNUm8SWS9zc3NYXFy8q3+XzE1tFKMWolkfiUQglUohEAiaLi1ILBbTXj61kcLa96rVKnWAvFPkcjkOHjyIoaEhdHR0AAD8fj9OnjwJl8vV9CH0e4XT6cQTTzxB06ZqGyOSlJdwOIzR0VFcuXJly/SBuBdUKhUsLy+jXC7DYDDU7XUkFdRut9NoZitDeluQKPXtIJ5wAPR+QfY/0meDZA2Q9G6iPBePx6kyIaMeiUSC3t5e2rNp//79NGWWOEJzuRwmJibw+uuvw+v1vqNsFVID3GxiEEKhEL29vTR1eWWvDGJknT59Gt/+9reRSCRaZr9vaB7HRgqkOBwORCIRlEolzU8mBzmRwWThyXoEAgGVbV15qatWq0in00gkEtsinYDD4dAcY5PJRGsRJBJJXcEx8XTVeotbXXP/VhDFJ6lUCpVKVVcUSdJystks3dgymcyqZ2wjl2gSnSSH8lrjIqlTzUqt5xKoV9kiXdVzuRw9EGqNVLLvkQtLrTLNSkOW6PRLJBJoNBqaqkWKgX0+H/x+/7Z4htdCLBZDp9NBrVavqukhyl6pVArJZBLJZLKpPJnNRm06ba1cN0EkElFnTatHNIC3U6jeyeWVpP8IhcK6Jn8r/x3G2xDVL9II0Wg0QqPR1GVd1GZcxGIxBINBJBKJd+xsasY7IpfLhUqlgsFgWOXoI475ZDJJVVnXOoeblYYZGrUKNys7ad7p58iFiGj35/N5LC8vw+12IxaL3btBtygymQw7d+7EwMDAqjz6TCaDy5cvY2ZmBi6Xq0EjvH9IJBIcOXIEO3bswO7du2G1WuukWQlEeWV+fh6XLl3C7Ows/H7/Xf971WoVbrcbFy9exMTERFNecIrFIm1kBtw0TMllNxQKYWxsDF6vl+p0b1btE4fDgd1ux8DAAG1yWEsoFMLCwgIWFxeRy+WaLpoBANFoFFeuXEE4HMbhw4fr3nM4HPj4xz9OlfCI0erxeGgRKuntQApxXS4XMpkMlb4l6PV6dHZ2oqOjA52dnbRPRzKZxMLCAl555ZVb9uPYDvD5fEil0lV1MsDNovzz589jcXERoVCoZdINmhEulwuz2YyhoSEUCgUIhcIt2yztbuDz+dBoNFQYQqVS0WiPUCiE3W5HpVKhUriMm5kWRqMR7e3t+MAHPoD29nZ0d3fXfU8ikaDR2rNnz2Jubo6eBVsNkUiE3bt348EHH0RfX1+dtH6lUqEpUx6PB9lstq7xZrPTUEODKCHdbYEsUXcgubilUok2qmKhydWIRCK0tbWhs7Nz1Vzn83ksLCxQjf+tDun+feDAATgcDmg0mjW9ciSfOxgMYnFxEQsLCxvy2lerVSqBSC6YzQaJ3JCLL1ExKpfLdVKC0Wh0UxvncTgcaLVatLe318n3EZLJJDweD8LhcNMqhGQyGSwtLYHD4ayKdmm1Wjz00EN1r83NzWF8fJwWktY281tYWEA+n0cikaBFpwSFQoGOjg60t7fDYDBAo9EgmUwinU4jGAxibGwMwWDwvnzmZoQ03VxLOCAej2NqagoulwvJZLIpn8FWgqROLS4uNm3t1P2Gx+NBLpfTVNDaNEoej0cjmyu71W9nSINch8OBvXv3oqurq+5+QjJVJicnMTk5idnZ2duqkbY6fD4f7e3tGBoagk6nq4uSV6tVJBIJBAIBJBKJVVL6zU7DDA0ejweTyQSbzUbVbW4XhiVa3jKZDA6HA4ODg7DZbODxeCgUClhcXMTExMS29ejdLUSalDQVc7lcTdkQbbMQi8U05cRut8Nut6/K5QZAU1cWFhZw8uRJLC8vIxKJrEuacK0UGpKj26wKF8DNiEYikYDX68Wrr76K5eVlKuEYCoVoMyDS02IzPwNJj2pmNa7bUSgUqNzgG2+8gUgkApvNBqvVStOdSP42n8+HQqFAe3s7LU4mRl6hUIDNZkNnZyfS6fQqXXSTyYSuri7o9XraZ4Skt1QqFahUKmq8bBe1PdIXSKlUwmaz0Z4vJJ2WrNVQKIQbN27A6/W+o6L87QRRcST58bU1B6RYlYhnkPluxr3tfkEKmjUazZp9h0ja6XYVa1gLg8GAPXv2wOl0UjENcm7GYjF4PB64XC5MTExgenoa0Wi0wSO+NwgEAtqLSalUQi6Xr+odUi6XEQwGMT8/j3A4vOpZ4/F4tB+MWq2GWCyGxWKBWCym80oED3K53H3fCxvaGdzhcGDHjh2wWCx3zPUkDf5UKhX6+/tx6NAhGg0hut+XLl3a1l69u6FcLiOXy9HUi+np6S2t8S2VStHV1QWLxYK+vj709vauMjKAt3Pox8bG8C//8i+Ix+MIBAJ3zH2/3fqtVCrI5/NNq4RGxpZKpfCNb3wDcrkchUKBKqUQlQ9SOLlZ1MoakktMqzUBy+fzCAaDSKfT+OEPf4g33ngDx44dw5EjR2hNhUAggFarBZ/Ph06ng0ajqfsd5LMSdZVisbjK8y4SiSCTycDj8ahkJmnmVy6XYTKZwOPx4HK5to2hwefz4XQ60dHRga6uLtr3pbYHTqlUgtvtxunTpxGNRpsydbHZqDViSdSMXIZ4PB5kMhk1eEk9wnYXX+Hz+dDr9TCbzauiFqR7u8/n29LOvLvFbrfj0UcfhcFggFqtrotoBwIBnD17FktLSzh37hzm5+ebMqK9GYhEIphMJqoMqlarqaFRezYsLS3hxo0bCAaDq+aCNLw1mUzo7e2FTqfDwYMHYTQa6TPqdrtx6dIlhEIhpNPprW9okCIgtVoNs9lMC1+IVyCTycBisSCZTNJIB2mMpVQqaTMc4GYRaiaTQSaT2VbevPVAvMW1Vi05hHO5HEKhEMLhMHK53KZfIpuF2u7cbW1ttGPwyjxuUogbCASoh5ocsncywEh3WSJHt7KIi8g4N/PaJBEucsEl4yXNCjdzbZDnXCqVwmw2w2g0QqVS0b8J+Vuk02lEIhGqDtKMEG9ToVCg9WELCwvQarU0xZM0FyX1aCStonatcDgc+rmBm+mhxDtPIiO1/x+4ebhIJBLo9Xr09/cjEolAoVDUFT0Tz/RWvAQS1TKtVguZTLZKUpRENWrX81bc4whkryPn68p9CHj7Ob/Teli5p9X+PuIZrVXt2Yrr624gDoC1JNKJo6mVinfvFUQARCwWQ6/X0+JvYmQQR188Hqd1t9lstmn3/82A7O9Eaat2j68VY8lms3X94YiIi0AggMVigU6nox3VNRoNLBYLNBoNBAIBTYfu6OiAUqnE8vIy+Hw+4vH4fVHgu++GBjEopFIpRkZGcOTIEZonL5fLsXPnTnR0dECr1cLn89GDWSKRwGq1QiaToa+vD2KxGMlkEl6vF8vLy7THwXZ/kGuRy+VUl7rW2AAAn8+HN954A4uLi9QruhUhln5nZyeeeeYZ2Gw2OByOuu+pVCooFArIZDJ49dVXcfXqVeo5uFPKFI/Ho55r0qAJqFcSymQyiEajd91/435TLpcRiUTqUiGIMtxmIpfLceTIEdjtdhw7dgz79u2jNVdEc75QKGB2dhanT5+G1+ttWjUlYmjkcjnMzc2Bz+djbm4OP/nJT+qiNVqtFnK5HHa7HU6nk75XmzJK5lypVGJkZAQqlQoSiYR66VfWsJAeIyaTCSMjI8jlcnC5XEgkEjh37hzOnj2LWCyGubm5LenJ5/F4sNlsGBgYgMViuaXhVvu1lSF7nVAorLu8AW/LsdZGKG8FSY9SKBT0i0h/l8tlTE5O4ty5cxgfH6fOve1uaAgEAphMJnpHqYXsq6yG9KaTaWBgAO3t7XjggQfQ19dH97hqtYpUKoVMJoOxsTH8+Mc/Rjgc3vLp8FwuF1KpFFKpFCKRqE7NrVAoIBgMIhwOw+/3w+/3U1lpiUQCh8MBtVqNp556CgcPHoRUKqU9OIjRS5wvnZ2d2LlzJ+LxOBwOB5aXl3H69Gm88cYb9/z5ve+GBinaE4lEUKvVddEJPp9Pw0Z2u50uQIlEAqlUCpvNBqlUSms6SqUSEokEkskkzXPe7hteLWSOFQrFKslHIom5nrSgVqZWFtRut8Nms9HUE0Kt18Dn82Fubo7Oy+0uJxwOhx7upDFb7TzXelRbYX0Smcd7BfGSymQyqhVusVig1+upHCQx+vL5PE1bI31xmhliUAKgHqJaj5NOp4NUKqU52iTasbI2jcfj0e7exLggHlJiiBCPNGmeJhKJoNVqUSwWoVAokEwm4fP5MD8/D+DmvrrVLoO1a0mj0VAFQsLKSOJW+uwrIWuIqDiSfb/Ws04cBiTyT6KUZE2tnB+BQACxWFwn1wq83a3e5/MhGo2+48ZprUBtpKh2bwfebs5H7ihyufyWctzk9wiFQnoubDd4PB71thMZ19ru16TxcjQahdfrRTweb+pMgM2gtkn1ynVG5H0zmQwVbAHePj90Oh1VJBwcHKRR7luhVquhVCrhcDjA4/EwOjpKHQj38jm+74aGQqFAb28vLBYLjEYjpFIp3RCFQiEMBgNKpRKUSiXy+Ty9KJIOvMQTCNz0yr/++utYXl5GLBbb8hve3eJwOPDEE0+gra0NarW6rkjS7/fj7NmzCAQCSCaTjR7qPYOsH+Khk8vlq0LbmUwGMzMzCIfDuHbtGq5du7aqI+5aSKVSDA0NwWAwYGRkBN3d3ZBIJHVhYNLJc3x8vC7suR2x2WwYGhqC1WrFY489hra2NlgsljrjLJfLYXx8HMFgENeuXcPMzMymSureT4jRRHK0+Xw+UqkUVakiYXKCRqOB0WiEw+FAuVyue59ExeLxOMbGxhCPx2EymaDX66FQKKhHn3TYPXz4MBwOB0ZHRxGJRGhDzq0Q2RAKhdDpdFCpVOjt7cXg4CC0Wu0qUYfJyUnMzc1hYmKiJdfPehAIBDQddOfOnRgaGqI1FCsNDZIaevbsWUSjUXg8HsRiMaRSKdqAE7i5Z1qtVvT398Nut68y4IhwRDQabXoHwGag1+tpYS1xchJjjTyvOp0Oe/bsofK2tSgUChw7dgwDAwPo7OzE5OQk3G43rl+/vqWdfLWQfhlKpRI7d+7EoUOH0N7eXlebVywWMTk5iYmJCdy4caPOIN6uEEGWQCCAdDqNSqUCs9mMrq4umM1mPProozCbzejp6aGOqztBGgMajUZMTk7CZDLRer97Ndf33dCQSqVob2+HzWaDWq2uU2ggudscDgd6vb7u59YyIiKRCFUTYUVWqzGbzXjggQdgNBohk8nqNJmj0SgmJia2fLdS4i0glv5a8oL5fB4ejwc+n49K2a4HkUiEzs5OOBwO2tuAQFJqyuUyotEoXC7Xlk/duBPkMLbb7di9ezdsNtuqIvpSqYTl5WUsLCxgYWEBHo+nZR0IxKsOgF7wbychbbPZ0NvbC7FYjHK5XJcKRFJeyEXR6/Wir68PHR0dMBqNkMvlVHFEKBRCLpfTbvc///nPaWfyrWBoCAQCqFQqGI1GmgpJ0stqiyfdbjeuXbuGpaWlLfvskSJkk8mEffv24V3vehdNp1vL0CBz4fP5aO0FMR5qDQ0iO63T6Val7LVKKuhmoVKp0N7eTlMf+Xw+IpEIUqkUenp6sGfPHsjlclgsFkgkEsjl8rqfl0gkGB4eRjabpc0OJRIJxsfHt42hQZT3ZDIZTeGpzbQgZ+Xy8jKuXr1a1ztpO0OydmKxGDW61Go1+vv74XQ6ceLECdpTqZbbnZkCgQBWqxU6nQ5WqxUajQY8Hm9TGiHeivtuaJBuuaT7cLlcptKZRHGFhBXJ5lgqlSCXy9HX11eX/5jJZOD1ehEIBLbEAbpZkBQe0mWSzDXpIkw65RLpwq12WHC5XCiVSojFYqowNTg4eEsN83w+D7/fD4/Hc1dGF5/Ph8FgoB7FtcbB5XIhk8mg0+mQzWapV2K7wOFwoNPp6MV3YGCARjJrN0eSKhUKhTA6OoqpqSl4vd4Gjvz+QOoMNBoNOjs7sWvXLlitVpr6Qp7X+fl5vPXWWwiFQpiYmEA0GkUul4PH44Fer0cwGIRGo8GDDz5IFahIXwkSEd4KXZyB+p4FIpEIQqFw1WW4Wq0iGo1ieXkZ0Wi0ZY3VOyEWi7F792709vaiv78fKpVqzaaFxOGiUCgwMDAAm80Go9GIaDQKn8+HhYUF6tXkcrno7+/H4OAg7HZ7XdoUScHaquIhBIFAgM7OTmg0GvT19WFgYABSqZSmeZKu6WazGW1tbRCJRFAqlRAKhXVeevJFUv22yjN4N3A4HKhUKuzZswdGoxF2u51KuBIjI5lM0mjv5OQkvF7vlnUObAQ+n4/Ozk6Uy2UMDAxQB/LKc5SknRHJ+lKpBLvdDqPRuOr3VatVWhOSy+Xu6dq874aGWCyG1WqFzWaDUChEsVjE4uIiLl++jFwuh3g8Tvs7kFztTCYDh8OBT37yk3WGBmnEFA6HVzXL2q5wOBzIZDKaB9/R0UHVbqrVKtLpNOLxOFXzSafTW+4QJha7VqvF008/jfe///20SGotSOrU0tLSXSkwkIjGwMDAqghcbX69RqNBW1sbYrEYlpaWtvQBvRLShKirqwsHDhzAsWPHqEevllQqhbm5ObhcLrz66qu4cuVK09e0bAYCgQA7d+7E4OAgRkZGcPToUeoV5XA4tI7qzJkz+M53vkMvhtlslta16HQ6dHd3o62tDXa7nXqziVLVrS7jrQopricqhGvlJFcqFXg8HoyOjiIcDm/ZS4tCocB73/teHD16lP6d15LtJvuRXq/HI488UpfWt7S0hLGxMUSjUYyOjqJQKODo0aM4fPgwVcMB3lasIs6/rextFovFOHLkCIaHh9Hf34/h4WFaW0qiQJVKhdavkDlfWcdBDDJiaKwntWUrQQxck8mEJ598Ek6nE0NDQ3WNcovFIi14vnr1Kk6dOkXXGOMmAoEA+/fvx86dO9Hf34/9+/dT4YdaYrEYxsbGkEgkMDs7i2w2i3e96111hgapEyJ9N+RyOXK53D1dm/fd0CgUCohEIhAIBJibm6u75JGuuMTQIIVm5XIZ2WyWXtCI7n86nabpANvp8nY7iDdfq9VCpVKt8rAkk0naXbJZG8i9U3g8HgwGA60DIukka0nalkolZLNZRKNRRCKRdYWyiWywTCaDQqGgnqzbsV08WSSKIxAIqAqXw+GA0+mEyWSCVCqt87iSkHkikYDb7Ybb7UYsFqt73rciIpEIGo2GpmMQD7NSqQSXy0U2m0WpVILH48Hy8jLtkJ5KpZDL5VAsFmndgUwmo/NYmzpEaoS2orTrejzExNDfKgbWrSAX4JU1PwDqIhClUokKFBAhgUqlAq1WC7PZDIlEgmQyiUKhAI1GU/eckhz62kZ+d1tkT/4etfKd+Xy+KS+UpJdIbX0YMdZI3xByptYKN9QWjpOzJZ/P0/Rut9uNUCiEeDy+pZ7HW0EMVZlMBoPBAL1ev6qWoFgs0rTQZDK5bdLJbkWtch6J3gI3jd9isUiFRUhqZKVSQSKRQCaTgcvlwtLSEj0/aiPZtXvlWobxveS+Gxperxc/+MEPaB6xSCRCJpNBKpWqU1Qhh6bFYkFnZyedkEqlgqWlJXg8HszOzrKCoRUQD+nAwACGh4epjj+Hw0GxWMSNGzdw/vx53LhxY8sWSMrlcjz66KPYtWsXuru7aXhx5QOVyWSQSCSwvLyMixcvYn5+fl1NbFQqFRwOBzo6OtDb24vu7m4qUFAL8XoVCgUaat+Khl0tpOjeYDDg6NGjMJlM2Lt3L3p6eqBQKOr6HQBAMplEIpHAlStX8I1vfAN+vx9ut3vLeqDJRcRut+PDH/4wbDYbdu3ahfb2dshkMojFYqRSKYyNjSEcDuMXv/gF3nrrLYTDYXg8HppeWgtR5LPZbHQdkrxeYrz5/f5t1ZWYy+XCYDCgp6cHPB4Py8vLW3JNVSoVpFIpxGIxyOXyuhROEsEmPV4ikQjkcjk6Ojqo3DnxNiuVSpRKJezZswfVapXWZpDntFQqIRqN0v1ybm4OxWLxruZUqVTCYDBAKBRCqVSiUqlgdna2KZvs5vN5nD9/HnNzc3RuZTIZtFoteDzeKoEKUjckEAioMyUej9M6s+9///tYWFigc5jJZLbFhZp0vG5vb8eOHTvgdDrrJOBJvejrr7+OhYUFLC4uNnjEjWWlUaBQKDA8PExLCarVap3gDHDz2Tx9+jTeeustuFwujI2NQaVS4Td+4zfQ3t4Ok8m0ZoTzfhkZQAMMjWw2i+Xl5XV/v0KhqPNeEa3lcDhMm4sxI+NtSCFfW1sb3RRrQ7mkMDkSiWzZSy+fz4fJZILD4aCFTmtRLBapkRsOh29bqAu8/XBKJBJoNBoaNVIoFGsWYxGvMkkzaEbP3WZC5H5lMhnUajU6Ojpgt9vR09OD7u5u+n0re4wkEgkEg0HMzs4iFAptSXGC2kZqpH6qu7sb7e3t6OzshMViod7nfD5POwnPzc1hfHycyi+vhUAggFKppMWVAGh0OJVK0WZPW2WfJM/hSmngld9DpG+JEMZWhPTGyGQydcIq5D0SgUgmkwiFQigUCrBYLFSNjxTpEgPVYDDc8t8pFovI5/O0z021WqXrbT3zK5fLoVarqXpTtVqF2+1+hzNwbyiXyzQl2+fzIRwOI5/P0+eXZFOQz03S1iqVCu0JUSgUkEwmEQ6HMT4+jsnJSZqNsV0gRqVSqaTSqoTabBXSD20rK2Cuh5V3MtLyYa27Wm2zWJ/Ph5mZGXg8HiwuLsJkMkEsFkOr1d4ytZScwffjHtiQzuB3g06nw/DwMNra2iAWi+suy+FweMscnpsF8eSRpoe1BwDJx7148SKthdmKFAoFzM3N0UiGwWBY8yAMBoMYHR3FzMzMHb1LxAtNvKQHDx6EyWSCTqdb0zOQzWZx5coV+P1+mid+p+Z/rQqHw6G58t3d3di7dy+MRiP27dsHvV4PnU5X9/35fB5utxvJZBIXL17E2NgYFhYWqITfVlmXRNJRKBRSlT3S1MtoNNIOrkQUw+VyYWZmBj6fD7/61a/g8/kwNTV1S8EGksZhNBqxd+9eWCwWqFQqVKtVLCws4Pz585iYmKBGxlZxLMhkMvT391PZ7rXg8XgYHBykaY1vvvnmlvQg53I5Ws+0a9cu7Nq1ixpg5LIcjUZx9epVnD17FkKhEEajEQqFAkePHkVvby8tCL0dRDpZJBLhN37jN9DW1kZrKkm67p3SR5VKJV3vYrEYmUwGkUjkrhyP9wvi0Mzn87hw4QKi0Sgt+CapjbUCNCaTCU888QQsFguEQiGkUikkEgn0ej3i8TgA3LEv01akra0Nhw8fppkFtZCslIWFBVy7dg2Li4uIRqMNGmnjKJfLtL8N6ZVBxDyA1cYHSYeNRqM02j01NYVKpQKn04nh4WHo9XoMDw/DZrOtqk0lNTHJZBJLS0vwer1IJpP3dG02vaGh0WjQ29tLLTSSj+bz+e6pHFerQiIadrsdWq22LheyWq3C4/FgbGysgSO89xSLRbhcLohEIthstlt+XzQaxdTUFJaXl++oWsblcqle9c6dO3H8+HF6cK5lxOTzeYyNjWF6ehozMzNbus8Lh8OBQqGAWq1GX18fjh07Rh0EZJOr/ezk7+P3+3H69Gm8/vrr9NKxlQ5iUmwnlUrR09MDm82Gvr4+DA8PQywW0xoqPp+PUqkEn8+HCxcuYHl5Ga+99hr8fv9tjVPiXdVqtdixYwcsFgtkMhn1FL/11ltwu93I5XJbau1JJBJ0dHTA6XTeUuCBx+Ohu7sbTqcTLpdrVe+crUI+n8f4+DiSySS9XNSmGZOml9evX8fLL7+MSqVC03z0ej2V5CZ1G7eC5IrLZDIcPXoUDzzwAFKpFLxeL7hcLiwWyy1V/QikAS8xhKLRKH72s59t6nxsFtVqlUYCb9y4gRs3btBuzBwOh9ZJEbq7uzE0NESjNcBNbz7x4t/rZqjNitVqxf79+2E2m1cZs6T4e2FhAZOTk/B4PA0aZWMpl8s0KkkihuRcIKw8PzOZDPx+P06ePAmXy0XTIK1WKw4ePEjvzSqVas2f9/v9CIVC8Hg8CAaD99wIbvrdVywWQ6/X0xQY4mkIhUJIJpNb6gB9J5BNkKTyEOlH4GYkIxaLIRaLbcm0lJWQsPV6dLhJ6oDdbodCoYBUKoVQKKS58Hw+H3K5HGKxGMPDw+js7KQXHKlUuqr4MpPJIBaLIRQKYXZ2FtPT0wiHw/fy4zYMUvQtEonQ3d0Nh8OB/v5+WCwWKJXKVZe7aDQKt9uNaDSK8+fP074lpOtpqzsNyAXKbDbDZDJBoVCgra2NasdrtVrYbDbodDpwuVyqqhcMBmn91NjYGILBII3s3G5/I7r0RJBAKpXSTrJEnWqrGW/AzXmWSqW0geut2KrpUrUQA7VUKuHatWs0RcXpdILH40GhUAAAdu7cSS/HuVwOYrGY1kusV3aVfA+pQwDeTrWqPW9WQtStUqkUlWUOBAKIRCIIBAKbMQ33BWIsECMOeLvYWS6XQ6VS0dQwYO2O4tsBDocDqVQKkUgEg8EAs9kMrVa7ZqNcr9dL97/tCpH3FQqFmJubg1arhdVqRVtb25rrhkQ7lEol+vv7odfrqWFiNpthNpvX7FBPUq3S6TRu3LhBa2LI83kvaXpDg+QyK5VKiEQiFAoF+P1+TE5OIhgMtvzlZLMQiUQwm820i6nRaKSKA5lMBpOTk/D7/Vv20ltLbe4/KcBe64EltT8ajQZ79uxBqVSiPQ3S6TQSiQQkEgl6enqgVCrR3d0Nq9VKQ+PkIAHe9hiQNAWPx4OTJ09SucitaBCTi4xKpcLx48dx6NAhmEwmdHZ2Um97LQsLC3jppZfo3Ph8vrp871aeI9Lpm8/nY8+ePTh+/DhsNhv27dtHL8S1ilyJRALT09OIx+N46623MD8/j9nZWVy9epUaILfb24g2vclkgs1mg8lkglqtpjUZy8vLuHHjRst2Vb8dAoEAGo0GOp3ujik/Wx0SOeXxePD5fLh8+TL6+/vxzDPPQKfTwWKxoKOjA/39/Xj66aeRTCaxuLiIUqmErq4uSKXSVReSW0H2OpIWpFQqqWzmreplSLFvpVKBz+eDy+WCx+PBa6+9hnA4jMnJyc2bjHsMqZ+qbQxJ1OMMBgPa2trgcDjqcuK3g+rZSojqo1qtRk9PDwYHB2kKaS3hcBg3btxAMBjc1u0J8vk8TRs+efIk3G43Dh8+DJvNtuba4fP5kEgksFgseO9734tSqUSFRGqV3Vb+LEnRCgQC+OEPf4izZ88ilUpRAZx7ef42raFBJkskEkEgEIDH46FQKNCmZ0TmsZUvJ5uJQCCATqejXcBrpQ5LpRLC4TCCweC2iGgAb8s63m59iEQiqhRC9M5Js7RMJkPrDqxWKxQKBbRaLc3RJQ8x+TdIbiUJR7rdbsTjcWQymS27Rvl8Pk0f0+l00Ov1UKvVdV2aiYedeO5JB3aivtLqkKJaUrRH1ovVaoXZbIbBYKD56ETukuS2ezwexONxeL1eWnCaSqXuGIEg/6ZGo6EREnKIJ5NJquRF8si32vojRfW3KwYnUU2y9rYq5HMCNzX0fT4fNBoNjRRIJBKavkdUHkm0jEhkcrlcukaIuApZO0Qady1In5Zajz0RwKhUKlSVKhqN0oJfl8sFr9cLv9+PSCTSkkpotc8TmQOxWEwLwmulu0m0dqtFFW8HqdnR6/W0cS7p7wKArgvizNsuHeZvRW1RdzQapTUTt9q3iYOTSMhXq1UaQar9nQQib55OpxEOh+FyuRAKhRCNRu8YNd8smtLQIE2oFAoFdDodBAIBCoUCFhcXEYvFMDU1tSF5va2MwWDAU089BYfDQT3K5MGOx+N4/fXXMTMzs+3l42pxOp1Qq9X0IQdADdta3Xm5XE4LGGu99JVKhcpHXr9+HdPT05idncVrr71G+0JstUteLWq1GocOHYLVasXw8DCcTic9UMgFqFAo4Ny5c5iYmMDY2Bhef/11ehHeCshkMphMJmi1Wjz66KNwOp1U8pjkpBcKBVy5cgVerxfj4+O4cuUKstksQqEQisUi7RuSzWbvuJ/xeDyaJvWud70LTzzxBAwGA6RSKbLZLM6ePYu5uTmMjY0hk8ls2V45d6JSqWBxcREul4t68Lc6oVCIOuFEIhGMRiMeffRRdHZ2QiaT0W7MDocD1WqV7mfkolPrWb106RKmp6dpp+G1LoJmsxkDAwO0iR2Hw6HqfalUCj6fD8VikRZVJ5NJxGIx5HI5hMNhmsbVykilUppJIJFI6i7UkUgEV65cwcLCAlKpVINHev8QiUTYvXs3BgcH0d/fT3u8EIECt9uNSCSCycnJuhYF2x1yj5idnUVvb+9tDQ3iaCE1eWulkBInwcLCAhUaefXVVxEKhTAxMXHXfXDeCU1paBAJUeIhJAs0kUggEokgFottexm0lYjFYnR2dqKzsxMqlarO00dUfubn57fVvN0pHYfI7t2OlZ1eye+rPZyJBOL09DSmpqboJW8rQ55Rm80Gu91OvVfA2/NUKpWQz+fh8XgwPj6O2dlZuFyuLaW+QgprDQYDhoaGaI2K2Wym64YYFYuLi7h27RpOnTqFfD5PDYH1QH4XUbKSy+Vob2/Hrl276grKPR4P5ubmEAwG75u3qlHcLu+9VjQkHo9v6Xkg5HI55HI58Pl8zMzMIB6PY2RkBAaDgdaikfqW2rkjF5J8Po9YLIZ4PI6ZmRlcuXKFFpOvtU4dDgdNIyWGBonOxeNxzM/Po1AoIJPJUHnmrbYvEjlvmUxGMy8I2WyWdrzeDoYugSjhtbe3rymxT6SWI5EI4vH4tov43IpKpUIN9VgshnK5fMsatFtJfJOzl5y/pP+Nx+PB9PQ0zp49i3g8ft/lzpvS0BAIBBgeHsbAwAAGBwchlUpRrVZht9uhVCoxMjKCYDCIUCi0ZRsxrReSxiOVSqFSqaiSDQDaGZgo+hBd8K1OsVikajsulwvBYJA2kltZvL1eiIe+WCwiEolgaWkJyWQSU1NTiMVimJycxPz8PKLR6JbLiV8JiZo5nU4cOHCAyvwCb6+5RCKBq1evIhwO44033sCVK1cQiURoOsZWufgpFAr09PTAYrGgra2NFuIBoLVB1WoViUQCoVAIuVyOFuDeSaWnFtITQqlUYufOnTAYDNi1a1edEl8gEMDY2BguXrwIn8+3ZeaYQNL02traYDQaodPpVhUgl0olxONxpNNpnD17FqdOncLS0tKWfyZrSafTmJubg8/nQ7lchsFggFarhcFggEgkglqtrrvAEAdeJpOBx+NBJpPB/Pw8PB4PCoUC0un0mpcSkiZFZJY5HA6SySRNayaXJZJ5sBUv20RZSqFQrMqJJwXw6XR6W9xReDwebcRsNBpht9uhVqtXSexPTU3h2rVrmJmZQbFY3NZpU7diaWkJr7/+OvR6PXbs2LFmLwwCMSrK5TIikQi8Xi/S6TTm5+eRSCQwOzuL5eVlqtRKzuD7SVMaGnw+H4ODgzh+/Djsdjv1xIjFYuRyOQwODiIej1NJtO3wEN8K8nCTizSpOQDelk1Lp9MIhULbxrNSKpWouhHJR1QqlbQr9d1CLmxEycrlcuHcuXMIBAL49a9/DZ/PRz2BW+1ytxZtbW04cuQI2tvbsX//fqooUhvFCIfDOHfuHJaWlnDmzBmMjY1tyblRKBTo7u6G3W6H3W6H2WwGUG9kEEOAGBoCgYAeyOtdj6Tvhslkwnve8x7Y7XaoVCpa/xGPxxEMBjExMYGrV69uyblWKpVoa2uD3W6H0WhcU8mmVCohEokgEong7Nmz+Ld/+7eWFxq4WzKZDObm5sDhcKiUudFopEZwW1tbnYHm9XoxPz9PPfDrFWeIRqO3TMXdLvNN6vxqm2USSqUS0uk0MpnMtrhME+eJXC6HyWSijuGVhsb09DTefPNNuFwu1nB5DarVKpaXl/HrX/8anZ2daG9vv62hAbzdW8Pv9+PKlSsIBoM4deoUfD4fVfZq5D7YlIYGYWV4lxSCRyIR+P1+Jm+Lt6UGiRIIyZcFbqZMxeNxJBKJuhb2Wx0SfeByuVhYWMCFCxdop2qpVAq9Xg+ZTEY9cWtBZGqJV4oUaqVSKSwtLWFychLRaBTRaBSZTGZLFt2uhOSFKpVKWK3WVfKYHA4H2WwWgUAAHo8Hy8vLtNvrVp2bbDYLv98PPp+PRCKBTCYDgUBQp+TD4/HQ1taGQqFAFWrIobxeRRqVSgWLxQK1Wk0L7vP5PPL5PPx+P8bHx+F2u7d0v5bawnui4LUyfYqkChDhi+18iam9WGSzWerNrG0GBtysJUgmk1Tm8m7mbKuutfVC1ObWUu7K5/OIRqNbujluLWQuiONTIpGsmfpD0o63mwPgbojFYpibm0Mmk4FKpbptindttgXpEB6LxRAIBGhNVKP3waY2NFZWzpOJGx8fx6VLl9al0LLVkUqlMJlMVE6u1oOQSCQwPz8Pl8uFbDa7LTY74O0i7Uwmg1deeQWXLl2CyWTC3r17odfrcfz4cXR2dkIikUAmk635O3w+H65evYpYLIbR0VEkEgksLy8jEAgglUrR6BCpN2j0g3yv4XA4EAqFEAqFaG9vx759+6BSqWiUiKy5QCCACxcuYGFhAadOncLy8vKWLvSLRCK4cOECXC4Xdu3aBblcDo1GU9exWiqV4pFHHsFDDz2ETCaDVCoFHo+3au6AW1/cyOWQw+HQS83y8jI8Hg+uXLmCb33rWwiHw/D7/ff08zYSLpdL61HI10qy2Symp6fhcrm2hZT3ekkmk8hkMuBwOFhYWKhbcyStiVwAGeuHRCZJ1kUt8XgcU1NTCAQC2yJlmfTykkqlUKvVqxoGE2rrHBlrMzc3B4/HAx6Ph+9///t3jHzX1mWQVEVyN2mGZ7ppDQ1iHRPpvWKxiGg0ilAohFgsRpUstvtiJRsd0UOvXZCkuO9et5dvRsjFn3jxyuUyzGYzcrkcPB4PjQDdytDwer3weDy0yVw8Hqf1HrlcDqlUalutPQ6HA5FIBIlEArlcTpsbkvVGomW1aXqJRIJqdG9VSD2KWCxGIBCA1+ulXmGiaU6K9kgEg0Q8VCrVHT1+RKaZrGfSI4Y4XoiUMpHKvVOH+1aGSKaSuoFkMll3RpTLZaRSKSQSCSQSiW1Vl3EnatfQVl4j9xti/Naq7ZHnlqzT7VKjURuhKBaLyOfzddFdMi+1EsiMtSGKjcDNFMVWpykNDS6XC41GA4vFAplMhmKxCK/Xi+9+97uYnZ3F6OgoksnktkkFuh0GgwHDw8Po6upaVRjp9Xrx5ptvwu12byt5vVpIsZnP58OZM2cgEolw7do1mh9/q2ZVyWSS6kzH43FaVE+8BNtt3QkEAtqwsKenB3q9nqbpESWRXC6HsbEx/PKXv0QwGNwyEra3I5fLwe/3I5FI4J/+6Z+gVqths9lgtVohl8thsVggEonqOieTZnu9vb1rGhpEcID0ZSHGMkkdnZ2dRTwex8LCAjWGiQjBVj68w+EwVTH64Q9/SJsVajQaZDIZJJNJRCIR3LhxA6FQCPF4vNFDZmxxpFJpXb1QtVqlTTP9fj+tFdwOxh1xBnM4HFy8eBEcDgcdHR3o6+ujvaZI74xIJIJsNrvtztHtSlMaGkQ6kzQYIi3ar1+/jvHxcapew7jZkIlsdCvzvZPJJJaWluD3+7ftfBFPHtFzB4CZmZkGj6r14HK50Ov1sNlsdTUuwNsdc1OpFAKBAKanp2lX9q0OkRBMp9OIx+Pgcrlob29HW1sbtFot7b6s0+logzSBQIBKpUIjH7XSjwDoWs1kMvD5fAiFQshms7QPwZUrVxAOh7G0tASfz9fIj39fIc3P+Hw+xsfHEQgEaPpiPB5HOBymcqyt2gyO0VqQFMjaeitiDNc2pNsOacvlcpnuUx6PB7Ozs1Qsg9QR5HI52rR0u95JtiNNaWgAoN5mkipADnIWEq8nGAzi6tWrKBQKiMfjVDKTaDIvLS0hEomwOWO8I6rVKjKZDBKJBL3A1XYDnp2dxeLiIqanp6lO93ZIF6iFRLoikQgqlQqV4Ca9BkjXYNJo6c0336SdlQkkz5ZEMWKxGE2VIoez2+2mKRnbDRI9Gx0dhUwmw/LyMhQKBXK5HDKZDLLZLDweD3K53LbqGcRoHoikL8mV3y4RcJK+mM1mceXKFfj9fkxMTODNN9+khkY2m8Xly5dpk9LtMC+MJjU0SOdDPp9PFyfpJhyLxRo9vKaCtKsn6RZKpZI+vKFQCHNzc7SehcHYKKT+ghwQtRSLRUxOTuLChQsYGxtDLBbbloYtiZ6RGpXaZo/A6gZztyvwW1kwWXsgk/So7XZIkxzweDyOy5cvA1jdULP2+7bb/DAaT21Bbq2xsV0gjuHz58/XNZUjEGNkK6d4MlbTlIZGqVTC7Owszp07R4uK5ufnt6UH704QdYFwOEy9CMDNB3pubg75fH7Ldwhm3HuIklc0GkUikUAymaRFkKVSCclkEuFw+JbNvbYb7KJ7b2FrjNGM1ApibDfBkFrY88mopSkNjUwmg3/5l3/BD37wgzoFh1Ao1OihNR1EP3lsbAz/3//3/9UVN5P8UFY0z3inlEolKu87NTWFubk5yOVyGAwGZLNZLC0tYWJiAuFwmB0yDAZjW1KpVLC4uIjr169jfn5+W0UzGIxb0ZSGRqVSgd/v39Ka8JsF8ZxmMhksLS01ejiMLUq1WqXRMdIMKJvNgsPh1DWGZAW4DAZju1Aul6nUcjQapUpxgUCAKmMyGNsdTnWdru6V+cXblY1EBtjc3YTN3ca527m7F/NGcm4dDgd6enrA5/MhFotRqVQwPj4Oj8dDUx2bBbbmNg6bu43D5m7jtNLcmUwmOJ1OSCQS6PV68Hg8+Hw+hMNhxGIxeDye+2pstNLcNRvNcMa2IuuZN2Zo3CXsQd44bO42DtsENwZbcxuHzd3GYXO3cdjcbRw2dxuHnbEbYz3zdvu+5gwGg8FgMBgMBoOxAZihwWAwGAwGg8FgMDYdZmgwGAwGg8FgMBiMTWfdNRoMBoPBYDAYDAaDsV5YRIPBYDAYDAaDwWBsOszQYDAYDAaDwWAwGJsOMzQYDAaDwWAwGAzGpsMMDQaDwWAwGAwGg7HpMEODwWAwGAwGg8FgbDrM0GAwGAwGg8FgMBibDjM0GAwGg8FgMBgMxqbDDA0Gg8FgMBgMBoOx6TBDg8FgMBgMBoPBYGw6zNBgMBgMBoPBYDAYmw4zNBgMBoPBYDAYDMamwwwNBoPBYDAYDAaDsekwQ4PBYDAYDAaDwWBsOszQYDAYDAaDwWAwGJsOMzQYDAaDwWAwGAzGpsMMDQaDwWAwGAwGg7HpMEODwWAwGAwGg8FgbDrM0GAwGAwGg8FgMBibDjM0GAwGg8FgMBgMxqbDDA0Gg8FgMBgMBoOx6TBDg8FgMBgMBoPBYGw6zNBgMBgMBoPBYDAYmw4zNBgMBoPBYDAYDMamwwwNBoPBYDAYDAaDsekwQ4PBYDAYDAaDwWBsOszQYDAYDAaDwWAwGJsOMzQYDAaDwWAwGAzGpsMMDQaDwWAwGAwGg7HpMEODwWAwGAwGg8FgbDrM0GAwGAwGg8FgMBibDjM0GAwGg8FgMBgMxqbDDA0Gg8FgMBgMBoOx6TBDg8FgMBgMBoPBYGw6zNBgMBgMBoPBYDAYmw4zNBgMBoPBYDAYDMamwwwNBoPBYDAYDAaDsekwQ4PBYDAYDAaDwWBsOszQYDAYDAaDwWAwGJsOMzQYDAaDwWAwGAzGpsMMDQaDwWAwGAwGg7HpMEODwWAwGAwGg8FgbDrM0GAwGAwGg8FgMBibDjM0GAwGg8FgMBgMxqbDDA0Gg8FgMBgMBoOx6TBDg8FgMBgMBoPBYGw6zNBgMBgMBoPBYDAYmw4zNBgMBoPBYDAYDMamwwwNBoPBYDAYDAaDsekwQ4PBYDAYDAaDwWBsOi1haFy6dAlPPfUUtFotpFIphoaG8JWvfKXRw2opnnvuOXA4HAwNDTV6KE3PJz7xCXA4nFt+ud3uRg+xKWHztnFGR0fx4Q9/GJ2dnZBKpdDr9Thy5Ah+/OMfN3poTQ+bu43DntmNc/HiRTz++ONQKpVQKBR497vfjStXrjR6WC0Bm7uNk0ql8Bd/8Rd4/PHHodVqweFw8PWvf73Rw7otnGq1Wm30IG7HL3/5Szz55JPYvXs3nnnmGcjlcszOzqJSqeC///f/3ujhtQQulwt9fX3gcDhwOp24ceNGo4fU1Jw5cwazs7N1r1WrVXz2s5+F0+nE6Ohog0bW3LB52zg//elP8ZWvfAUHDx6E1WpFJpPB97//fZw6dQpf+9rX8OlPf7rRQ2xa2NxtHPbMboxLly7hoYceQltbGz7zmc+gUqngb//2bxGJRHD+/Hn09fU1eohNC5u7d8bCwgI6OjrgcDjQ2dmJkydP4vnnn8cnPvGJRg/t1lSbmHg8XjWZTNX3v//91XK53OjhtCzPPPNM9fjx49WjR49WBwcHGz2cluTUqVNVANXnnnuu0UNpKdi8bZxSqVTduXNnta+vr9FDaTnY3G0c9szemSeeeKKq0WiqoVCIvubxeKpyubz6gQ98oIEja37Y3L0zcrlc1ev1VqvVavXChQtVANXnn3++sYO6A02dOvXCCy/A7/fjueeeA5fLRTqdRqVSafSwWopf//rX+N73voe/+Zu/afRQWpoXXngBHA4HH/vYxxo9lJaCzdvG4fF4aGtrQywWa/RQWg42dxuHPbN35tSpUzhx4gR0Oh19zWKx4OjRo3jppZeQSqUaOLrmhs3dO0MkEsFsNjd6GHdFUxsar7zyCpRKJdxuN/r6+iCXy6FUKvH7v//7yOVyjR5e01Mul/Hss8/iU5/6FIaHhxs9nJalWCziu9/9Lg4dOgSn09no4bQMbN7unnQ6jVAohNnZWfz1X/81fvazn+HRRx9t9LBaAjZ37xz2zK6PfD4PiUSy6nWpVIpCocDSk28Dm7vtB7/RA7gd09PTKJVKeN/73odPfvKT+C//5b/g5MmT+N//+38jFovhW9/6VqOH2NT83d/9HRYXF/HKK680eigtzS9+8QuEw2H81m/9VqOH0lKwebt7/viP/xhf+9rXAABcLhcf+MAH8NWvfrXBo2oN2Ny9c9gzuz76+vpw9uxZlMtl8Hg8AEChUMC5c+cAgBXR3wY2d9uPpo5opFIpZDIZfPzjH8dXvvIVfOADH8BXvvIVfOYzn8G3v/1tTE9PN3qITUs4HMZ/+k//CV/84hdhMBgaPZyW5oUXXoBAIMBHPvKRRg+lpWDzdvd84QtfwMsvv4x//ud/xnve8x6Uy2UUCoVGD6slYHP3zmHP7Pr4gz/4A0xNTeGTn/wkxsbGcOPGDXz84x+H1+sFAGSz2QaPsHlhc7f9aGpDg4TXPvrRj9a9TnJHz5w5c9/H1Cr8+Z//ObRaLZ599tlGD6WlSaVS+NGPfoTHHnusLqeUcXvYvG2M/v5+nDhxAh//+MdpvvKTTz6JanOLAzYFbO7eGeyZXT+f/exn8R//43/ECy+8gMHBQQwPD2N2dhZ/8id/AgCQy+UNHmHzwuZu+9HUhobVagUAmEymuteNRiMAIBqN3vcxtQLT09P4+7//e3z+85+Hx+PBwsICFhYWkMvlUCwWsbCwgEgk0uhhtgQ//OEPkclkWCrBXcLmbXP40Ic+hAsXLmBqaqrRQ2k52NzdHeyZvTuee+45+P1+nDp1CteuXcOFCxeoWE1vb2+DR9fcsLnbXjS1obF3714Aq3P2PB4PALCUoFvgdrtRqVTw+c9/Hh0dHfTr3LlzmJqaQkdHB770pS81epgtwTe/+U3I5XI89dRTjR5KS8HmbXMgaQTxeLzBI2k92NzdHeyZvXs0Gg0efvhhKrbyyiuvwG63o7+/v8Eja37Y3G0fmroY/CMf+Qj+63/9r/jHf/xHHD9+nL7+D//wD+Dz+Th27FjjBtfEDA0N4cUXX1z1+p//+Z8jmUzif/2v/4Wurq4GjKy1CAaDeOWVV/DRj34UUqm00cNpGdi83T2BQIBGagnFYhH/8i//AolEgoGBgQaNrPlhc/fOYc/sO+c73/kOLly4gL/6q78Cl9vUPtymg83d1qapDY3du3fj937v9/BP//RPKJVKOHr0KE6ePIl//dd/xZ/92Z/R1CpGPXq9Hk8//fSq10kvjbXeY6zmO9/5DkqlEksluEvYvN09n/nMZ5BIJHDkyBHYbDb4fD5885vfxMTEBP7n//yfLG/5NrC5e+ewZ/bu+PWvf40vfelLePe73w2dToezZ8/i+eefx+OPP45//+//faOH19SwuXvnfPWrX0UsFqPZPT/+8Y/hcrkAAM8++yxUKlUjh7cKTrXJK+WKxSK+/OUv4/nnn4fH40F7ezv+8A//EF/4whcaPbSW49ixYwiFQkynep0cPHgQc3Nz8Hg8VIaPcWfYvN093/72t/GP//iPuH79OsLhMBQKBfbu3Ytnn32WpbLcATZ37xz2zN4ds7Oz+IM/+ANcunQJyWQSHR0d+N3f/V380R/9EYRCYaOH19SwuXvnOJ1OLC4urvne/Px80/XAaXpDg8FgMBgMBoPBYLQeLBmOwWAwGAwGg8FgbDrM0GAwGAwGg8FgMBibDjM0GAwGg8FgMBgMxqbDDA0Gg8FgMBgMBoOx6TBDg8FgMBgMBoPBYGw6zNBgMBgMBoPBYDAYm866G/ZxOJx7OY6WYSNqwGzubsLmbuPc7dyxebsJW3Mbh83dxmFzt3HY3G0cNncbh52xG2M988YiGgwGg8FgMBgMBmPTYYYGg8FgMBgMBoPB2HSYocFgMBgMBoPBYDA2nXXXaDQzcrkcIyMj0Gg0CIfDSCQSSCQS8Hq9KJfLjR4eg8FgMBgMBoOx7dgShoZOp8Nv//ZvY8eOHbh27RqmpqYwOzuLcDiMbDbb6OExGAwGg8FgMBjbjpY2NMRiMZRKJQwGA3Q6HbRaLfh8PvL5PIrFYqOHx2AwGAwGg8FgbFta2tDo7OzEI488AqvViq6uLqhUKvj9fpw5cwbxeByFQqHRQ2QwGAwGg8FgMLYlLWlocDgccDgcKJVKdHZ2wmg0QiaTgcfjIZPJIBgMIpfLoVKpNHqo94yVGs5cLhc8Hg8cDgflchmVSgXVanVDutoMBuP+Qfazlc80h8MBl8ute71ardJne+VrDAaDwWDUQs4QDocDHo+HarVad0e8H7ScocHlctHW1gaDwYAHH3wQ+/btg0gkgtvtRiaTwfLyMlKpFEql0pa9ZPN4PGpcEWPCYrHg+PHjkEqleOuttzA/P49QKASXy8UuIQxGk8Lj8dDe3g6tVguhUAiRSAQulwuBQACBQIDu7m60tbXR70+lUrh+/TpisRgqlQoqlQqi0SiWlpZQKBSQzWaZAAaDwWAwwOVy0dPTA6fTCaPRiIGBAeTzebz22mtwuVyIRCKIRqP3fBwtaWhYLBb09fVhaGgIu3btQi6Xw8svv4ylpSV4vV5kMplGD/OewuPxoNPpYDAYUKlUUC6XMTw8jE9+8pPQarX453/+Z4jFYkxPT8Ptdjd6uAwG4xbweDzY7XZ0dnZCIpFALpeDz+dDLBZDIpHg0Ucfxe7du+n3B4NB/OhHP8LS0hLK5TLK5TKWlpYQi8WQTqdRKBSYocFgMBgMcDgcOJ1OHDhwADt27MB73/teJJNJxONxVKtVlEolZmisBZfLhdlsRl9fH0wmE6rVKnK5HPx+P9xuN1KpVKOHeM9QKpVwOBxQKpUYHByE0Wik4S+n00nTx9RqNcxmM/x+/6p0DAaDcf8g4WqtVguJRAK9Xg+j0QgANHKxY8cOWCwWCIVCSCQScLlciEQiCIVCaDSaumdYLBbD6XRCLpejXC6jWq3CaDRCLpcjmUxicXERyWQSsVgM8XgcpVIJ+Xy+ZaK7tSF+oVAIPp8PjUYDmUxGXxcIBNBoNODz+eDz+eByuUgkEohGo2t+zmw2i2QyiVKphEwmg1KphFKpxAwyBoOxpeFwOJBKpdDr9VCpVODxeJBIJNi5cydkMhneeustZDIZ5PN5pFKpe5b90nKGBo/Hw44dO/DYY49BoVCgVCohFothbGwMY2Nj8Pv9jR7iPcNqteLDH/4wrFYr9uzZA6vVCuBmjrZQKIRarUa5XIbD4UCxWEQgEACXy3oyMhiNgFyMJRIJduzYAavVigMHDuDYsWPg8/m0BkOpVEIsFoPL5a6qyRCJRHW/Uy6X4+GHH667JOfzeSSTSSQSCbzxxhtwu924fv06RkdHkU6nEQwGW+ZSTWrNxGIxtFot5HI5HnjgAdhsNggEAgiFQmi1WuzcuRNyuRxSqRRCoRBTU1O4ePEiSqXSqt/p8/kwNTWFVCoFl8uFdDqNVCrFpM8ZDMaWhsPhwGg0ore3FyaTCTweD0qlEh/84AeRz+fxrW99C6lUCpFIBDMzM/dMQKllDA0ulwupVAqFQgGNRgOVSgUOh4N4PE69d/F4HPl8vtFDvWeQS4tYLIZcLodSqaQeQHJJKZfL4PP5EIlE9DLDuDNknshFTyAQQCwWr7r0kTldOa+FQoF6j9Pp9H0ttGoFar3RfD4fCoUCAoGAvl8sFqm3eSvVGXC5XPD5fOj1erS1tcFqtcJkMtUZGmKxGAKBgK4rEtIm/y0Wi3VGiEgkWrUuSX2HxWIBAEQikbqvZp9PImQhk8kglUohk8lgNpuhUChgt9thtVpp3YpGo4HJZIJCoYBYLIZIJEIymYTFYlnTI8fj8ZDNZmm0O5VKwefzoVQq0dRTBmM9rHVOkOeRx+PV1VeVy2W6xorFIsrlMnK5HAqFAjsbGPcUHo8HlUoFmUwGrVYLpVIJiURCzxzipFGr1VAoFMjlcvfUKd0yhoZKpcKBAwdgNpsxNDQEk8mEmZkZvPnmm3C5XBgdHcXS0tKWNjTy+TyCwSD4fD5isRiUSiWkUinkcvmal1/G+iAHBo/Hox7Sjo4ODA0NgcfjAQD4fD56enpgt9vrDhcAqFQqmJubg8vlwvT0NF599VWkUikUi0VWiI+bmx6pK7LZbLBYLHjqqadgt9vpgb2wsIA33ngDoVAIFy5cQCAQaPSw3zHEyFAqlThx4gSOHDkCtVoNtVpN106tk4BQLBbh9/uRy+WQTqeRy+XooUA8+kKhkH4/cUAIBAIcOHAA2WwWQ0NDOHLkCK5evYr/+3//L8Lh8H3//OuFpHuKxWIMDg5icHAQZrMZe/fuhVwuh0qlokY/ucgplUq6rrhcLux2OxQKxZoXOGL8FwoFhEIhpFIpvPTSSzh58iQymQwikQh7Thl3hJwT5KImFotht9uxY8cOiMViuoY7OzthsVgQj8cRCASQTqexsLCAeDyOy5cvY2pqCpVKZc3oG4OxGeh0OnzkIx9BV1cXHnjgAfT19VEn38rv6+/vh0gkwuTkJHK53D0ZT8sYGiKRCHa7HW1tbdDpdJDJZMjn85ifn4fb7UY4HEYymWz0MO8ppVIJqVSKhv3z+TxVqVkJOzjvDLnskXxwYmiIRCKYTCb6cAI3DY09e/agp6cHQqEQUqm0ztAwGo2YmppCqVSCWCxGLpdjBwluzjHJpZfJZDCZTHA4HDhw4AD6+vqooTE6OgqfzwexWIwbN240etibBrkYkwvJeigWi0gkEshkMojH40in01AqleByuZBIJFAoFHWRNeJN5fF4MJlMAACZTAadTodkMllnlDQj5HPJZDLYbDb09/ejra0N+/fvh0wmW9fvkMvlkMvlt/2eUqmEeDxOlbuIYbJdHTS1xu7t5mCl8XY72fTa37ny51vdi0+eZR6PB5lMBolEArPZjJ6eHshkMhiNRkilUgwPD6OjowPhcBhLS0tIJBIQiUQIh8NYXl7G/Pw8rRFq9TnZCLXrba11t/KZZNkBdw9J1x0eHobT6YRGo1n1PRwOBxKJBBqNBqFQaHtHNEiqlMPhwIMPPgiHwwGJRAKv14uFhQWMjo4iGAxueaUpAIjFYrhw4QJ0Oh0kEgkikQh6enqgUqnoIqlWq8hkMkgkEshms+wBXQGXy4VOp4NUKoVGo6H/22w2QywWw2g0QqlUwmg0or29nc4rUTsTi8U0ykHgcDg0HSaXy2FwcBCBQABzc3NIJBKN+JgNh8fjQS6XQyQS0UhQW1sbhoeHodVqYTAYVqX/GAwG5PP5upSqVoekP4XDYbjd7rqURwK5dORyOWQyGfj9fvz85z+H3++nz7FcLodOp6NrVCqVoru7G+3t7fSwqD0oRCIRFAoF/Uomk01n/AoEAshkMqjVarzrXe+Cw+FAT08Pbb66loF0N5fWlZcZkn7L4/Gwb98+8Pl8jI2N4aWXXkI6nd7ET9ZYag1PEunKZDJIp9PUK8/n82E2m6FUKmGxWNDV1QWBQAC5XA4ej0cL5mOxGDweD43OVioVeDweBINBmtZHUoMqlQrsdjvsdjvkcjkMBgOq1SomJiYQCoWQSCQQiUQaPT13DZ/Ph1AohNlsxpEjR6DRaGAwGKBQKKDX62G1WiEUCiGTySAQCKBWq1GtVqkhotFoIJFIkE6nIZPJ4HQ6sby8jAsXLiCbzW5pKX4SrRUKhVAoFBAKhTCZTFCpVDAajXA6neDz+fRMJep5JD08mUzizJkzCAQC1EnA+oPdGuJgcjqdcDgcaG9vh1KpbPSwmt/QkMvlaGtrQ3d3Nx544AG0t7cjEonA5/NhcXER4+PjiMVi28bQuHjxIuRyOdRqNRKJBKRSaZ2ntFqtIpvNIpFIIJfLsQdyBTweDwaDAVqtFp2dnejp6YFarcaOHTuoqpdOp6vzupA5vJ3Xz2QywWg0IpfLYWBggHap366GBp/Ph0qlgkKhwAMPPIA9e/ago6MDe/fuhVAoXDWXxNDI5XKrCqBbGVIDQAwNUndQu7aKxSKNYoRCIczMzOCll17C7OwsjV7KZDJoNBoIhULo9XrIZDI8/vjj4PP5NAe31tAQCoXUyy+XyyGTyVAsFpvK0BAKhVCpVLBarXjsscewd+9eqFQqWn+3EnLBWO9Fg6RaEQ8piZyIxWI88MADcDqdUKlUeOWVV7aUoUE873w+H2q1GlKpFOFwGJlMhl76xGIx2tvb4XA4sGfPHhw/fhxyuRxGoxFCoRDZbBaFQgHz8/O4ePEi8vk8rUO7ePEigJspaaSuKpPJoFwuo6OjA/v374fBYMDAwABKpRJ++tOfYmJiAsvLy7dUBmtmBAIBpFIpHA4HPvjBD8LpdMJisUClUgGoPxdWKsSJxWIAQFtbGyqVCgwGA/r7+3HhwgVMTk7SxmlbtU6IrEWJRAKTyQS5XI6RkRHYbDaMjIzg4YcfpvVlALC4uIhAIAC1Wg2r1QqXy4VcLocbN27Qu81Wnq93Crkvt7e3U2OjGWhaQ4Pk3up0OuzYsQPt7e00XYVEM5aWlpDNZlEsFltu89oopAtwrTeplkqlglAohKWlJUQikW0zL7eCrCNSVCqVStHb2wudTgeLxUK9b3q9HlKplKr/kAOjXC5TaUxS0EfeI94r4oEnaUISiQQSiWRV5GM7QIQI1Go1du7cCb1ej97eXthsNmg0Glr0Wwvx+mcyGXph2QqQZzWbzWJychJ8Ph+dnZ30sp/P5+n6IvKCpPlePB5HLper8xhnMhkUi0XweDzkcjm43W4sLCygVCqtOlBI4T1JVyuVSsjlck1Vw0YK4UUiEX1m+Hw+7VxL5icWi9F6lVQqRd+7XXooKSwXi8XQ6/VwOBz0eSRefalUColEAqlUSms4WjnllDhHFAoFlTsntSvBYBBerxdcLhcymQxCoRD9/f2wWq3U60nmn6wdDocDtVqNtrY2aqSSAmeNRkPVzsgarlQqGBkZQW9vL1QqFQwGA8rlMvr6+uiF2+v1UsO62c8mIp1ss9moU4pEMoRCYZ1hX6lUqGOPpPqQs6BWsEWhUMBoNMJgMECv14PD4bSUKtydIHs7mTtyxpLzVyaTobOzEwaDASaTCUKhkMpYV6tVyOVylEolyOVy6ogYHByETCaDXq/H8vIy4vE4jbI1+xq6X5CUb7PZjK6uLpr50yw0paFBlFWEQiGGh4fxsY99DGq1GjqdDuVyGWfPnsUvfvEL+Hw+RKPRbbfgqtUqCoUCvYjUUiqVMDY2hl/96leIxWJbZgPbKKSeor+/H7/5m79Jay9IQS05MEiR30rjIJfLYW5ujja5IV5BUuS7e/duaLXaun9Pq9Uik8msKrzaDshkMhgMBnR3d+PTn/40urq6oFaraSO6W81JNpuFz+dDIBC4ZwVp95tKpYJCoYBoNIrvfve7EIvFOHjwIN71rnehUCjQgm9SoJzL5ag60vLyMk0TAG4aJcViERwOB+FwmErAxmIx7N27F8PDw3WRIOLRNhgM2LNnD0wmExKJBOLxeKOmYxVEklun00GtVlMPMTGKyLxcvHgRbrcbS0tLmJ2dRTabRSAQWLX31cLj8eB0OmE2m3H48GF8/OMfr6v3IBdArVYLnU6HSqWCcDjc0muP7F/t7e145plnYLFYMDw8DKPRCK/Xi8XFRZrSKBQKYbPZqMAAKbYn+x/ZG9va2mi/KrIWH3nkERSLReRyOcTjcRSLRar46HA4YLfbqbFSqVRgtVqRyWTw3e9+F/Pz80in04hGo00VXVsJ6T8gEonw8MMP48Mf/jB0Oh36+vpo+l0tJD2yNvKjUqlgsVjopZvD4cBiscBgMCCbzWJkZARerxe5XK6l1x2BGFO1tY6HDx/G+9//fqjVanR0dEAsFtN6SBLJqE1x1Ov10Gq1dC2azWb8zu/8DvL5PK5cuYKJiQncuHEDP/rRj6gDcDvd/daCy+XCaDRSoaQTJ07AYDCsWZfRKJryJkS8UcSKNRgMkEqlVBouHA7D7/fThlTbcaHVFoLWQjwrJCd7u0KK9pRKJdRqNYxGI+x2O0wmE8xmM93MiJwoKczL5XJ1EaNkMgmv10sNjVQqRS/MhUJh1WWHbJDkcGl1eDwevcASqUbyRajN+1ar1TCZTDCZTLBYLDCbzVTusVAoIJlMUtUWchEhhnMymaQe660CWVuxWAzATY+u2+1GoVCAz+ejF2riUSeXjpUee/J7CFwuF5lMhhooa+2BtTLNzRhhI5+JfNVePEmtSiKRgNvthtvthsvlwvLy8roNDSIbXGuwEcgarlarW+I5BUAbPpILrtVqhcVioQIBZD0RDzKfz6e1GLWpxxwOh35P7WtkTyMX7Xw+T1Py5HI5isUijEYj1Go1/blKpQKhUIhSqVR34W5myGVZqVTSdDKr1Ur73ZB5Ieu3UCggm83SWlHiFCD1ZmKxmMp5k3knzySJoLcytWpwMpmMngNisRhWq5UatGazGSKRqC79cWUEkRhp5G/A4XCgVCpRrVZhNpuRTCYRCAQglUpplHcrnRcbgcPh0KwMcl/WarV3rHUk5y5Jz72X0dymMzRINOPhhx/GyMgIdu7cCavVing8jldeeQVerxfnz5/H8vJyy4e6NwrpNGyz2eoKS2sP7e1ofBGEQiE6Oztp+s7IyAjMZjN27dpF89VrN3ciG5zNZjE/P49QKITFxUWMjY0hl8vRqBk5QEQiEaRSKZxOJ4aHh+lBvtUgHqY9e/ZAIBDA5XLRvjVELrW2u7XZbMaOHTtw8OBB6HQ6Gr4lkaDR0VG8+uqrUKlUeOaZZ+B0OpFOp5HNZjE3N4fz589TB8JWZXp6GolEgqZUVSoV5PP5OiOuXC7f9hJNIJG12xkQ5DBvxj0hlUphbm6Org1SjCyTyTA6Ooqvf/3rCAaDiEQiyGazdalTd/KGczgcqFQqWni6UgUpFoshFArB4/EgEAggEoncs2ZV9wMOh4POzk7s2LEDO3bswN69e2mkCADtTJ9MJjE3N4d4PI5Lly5hYWFh1e/i8/nYsWMH2tra6GukiFcqlcJqtcJoNFKZ4Wq1ShW8VtZXZbNZnDp1CjMzMzh37hzC4TAKhULTXg6JOp5SqcRTTz2F/v5+DAwMwOFw1BlfJI3M6/Vibm4OPp8Pr776KoLBIHUUGAwGOJ1OWK1WfOADH4DD4Wh5o2ItFAoFlEolrFYrDh06BI1Gg+7ubuh0OpjNZtjtdgiFQggEAlSrVeocIYY+2ZdKpRKuXbuG+fl5aDQa2Gw2KtQikUhgNBqh1+shFAoxMTEBv9+PyclJRKPRBs9AY+Hz+di5cycOHz6M9vZ27Nixg6ai3o5qtYrJyUm89NJLVHTkno3xnv3mDUK8cJ2dndizZw/a29uhUCgQj8cxMzODubk5mqe3XSGyZKRhFfD2haJWCq7ZLhb3Cz6fTze5gYEBHDx4kKqrrLTySX1AIpFAMpnE/Pw8lpeXcf36dZw+fZp6WGrnlnioiEdlK0KiPUQlRSwW08Zx+Xy+TslHIBDAaDSio6MDw8PDOHjwIO3vwuVyUSgUEI/HMTc3h5MnT8JkMuGxxx6jSkukM6nL5aIH9VYlHA5vSk+LlZGz2xVPN2vxZKFQQCQSAZ/PRyAQgN/vpwaWx+PBm2++Ca/Xu6HfTRxWZI9cecHL5XKIxWJIJBLU2G11NBoNurq64HQ6YbPZaCoaAHrxKJfLyGQyCIfDeOutt/DWW2+t+j1CoRCpVKquQF4ikaBUKtEIMXDz2SepL+RSs/LsKRQKWFhYwNWrV2k0qhmNXgKJhCkUCgwMDGD//v0wGo2rjFXiDIjFYlhaWsLi4iLOnj0Lj8dDMy8MBgM8Hg86Oztx4sQJAKulW7cCIpEIcrkcFosFu3fvhtlsxsjIyCoHHNmLSL3Vyn2pUChgbm4OV65cgdlsRrlcprVD1WoVGo0GSqUSfr8fVquV9l/a7pAUs/7+fphMJhgMhnWlbVcqFQSDQSpKcC9pKkNDoVCgq6sLer0eAwMD6OzsRKVSwfXr17G0tITR0VEsLCzQNATG26TTaczPzyMYDMLn89GGcRvZ0NVqNZWdIwXQgUCgZZqoicVijIyMUG+UwWCAUCikUQmfz0fTdIiBMTMzg1QqhYWFBYRCIXi9XlqMSh7CZj0c7wW1ko779++nqYsEYoR0d3dTZan29na0tbXRNIqxsTGkUilMTExgaWkJ0WiU5s2TqNLS0hImJiYwNjZG1eOa8VLcLEgkElr38uCDD2J4eBjt7e2rpGCLxSIKhQKCwSCuXbsGt9vdtPsmuWBwuVz6vIpEIpo+m8vl7mpNkDSfrq4uHDhwAJ2dnXVRn3K5jNHRUbz++uuYmZlpqgL5jcLhcKDT6dDV1QWr1brqokH6Ly0uLuL06dPwer1UTGUlhUIBExMTdc48sVgMt9tN662cTid9r9bJtbS0hKWlJeqESSaTVGGJFD03cxaCXq/HQw89BLPZjN7eXhiNxjqVOCJEcP36dSwvL2N2dhZXr15FJBJBJBKhZwZwM/3P6/VCLpcjn89vOSODpIINDQ3h0KFDNKJNoluxWAyBQABer5fWXRUKBSwvLyMSidDIJDlXy+UyZmZmqMjF3NwcpFIpLSZ/6KGHsGfPHqjVahw6dAg+nw8ej4emrm0FZ8HdoFarsX//fphMJjzwwAP07L1T1CyTyeD8+fPweDwYGxu7L/eapjI0VCoV9u/fD5vNht27d2PHjh0YHx/HxYsXMT8/j0uXLsHlcjX1RtUokskkrl69Co/HA5fL9Y6aF+r1euzbtw8SiYTKHF65cgXBYLAlLtsSiQT79u3DwYMHodVqodVqUSqVkE6nkclkMDY2BpfLRecqFothfHwc6XSaygJv9yZBRBfeZrPhyJEjUCgU1FsnEolo/u3jjz8Ok8mEgYEB6mXicrkIBAK4cuUKPB4PTp8+jbGxMXR0dOCBBx6gKX88Hg9zc3N47bXXsLS01PLFuPcDqVSKPXv2wOl04qGHHsLu3bshEolWpayQw9fv9+Ott96C2+1u2n0zn89jcnIS8XgcOp0OIyMjEIvFUCqVNFXqbgwNEmXr7+/HI488QvsbECqVCi5fvozvfOc7yGazW2bN6fV69Pf3Q6PRrIrcJpNJuN1uTE5O4pVXXoHL5bptusTY2BjGx8fp/xeJRHA4HFCr1ejr68NDDz1E3yNR4VKphImJCbz++utIp9O0mP/q1avw+Xwt0f/AYDDgiSeegN1ux8DAAIxGY50UNYnCnjt3DmfPnsXs7CyuX79Oo961n4+cN1KpdEsYs7WQaJZIJMK+ffvwO7/zO7RpIXAzchuJRDA6OooLFy4gk8kgGo0im81ibGyMqo8VCoW6OSNzSCLqAoEAOp0OcrmcNqHTarU4ceIEfD4fLl26RFN5t5uhodPp8PTTT6Ovrw89PT2w2WwAbi/DD9zcC372s5/h0qVLmJubuy/nQlMYGqTwRyaT0eIhgUCAbDaLSCSCxcVFesm506QQiVKyUCuVCpWFbPXLI7nEkWIyqVS66gDdjM8oFothsVigUCjoIU8kcwuFAjKZTNNeWoCbuZ6hUAhut5vmy6bTafj9fuph9/l8CIVC9DWSPkEiOLdDJBJBp9Otq+Cq1SEpOkKhkKrHJJNJxGIxGI1GWCwWqm5B5jEejyMQCGBmZgZ+vx/JZJIWrJGCfBItSyaTCIfDtG6BUQ9RaZFKpVCpVNDr9ejq6kJbWxtt4LdWmLxQKNC0IHIJalYqlQoSiQR4PB6mp6eh1WoxOTmJdDq9poT3WpD9nuxdpKkaaVgH3PSYptPpOofCyotOq1B7Fmi1WprLrlQqIZPJqMhFMplEoVDA4uIiJicnMTs7S6WTb1fnsnLOeTwebDYbLBZLXbE3cHO/JfVbJLU5m83SCOV6zu1GQxpbWiwW6HQ6aDSaOkUkMpczMzOIRCKYn5+Hz+dDLBa75RolUeHa1L3a7yOqS0Rh824N6kZDzgYSfRQKhfSZnZmZoWk5i4uLdQI1tc1D71SLVq1WaQqfx+PB5OQkbbZbqVToMyCRSKBUKlEqlaiQRis+1+uBrCmi2EcaON/JwCiVSshms4jH4wiHwwiFQvct9bspDA2yUO12O44cOQKHw4FKpQKv14srV67gJz/5CWKx2B3rMjgcDtUFJ51RC4UCpqamEI1GUSgUWrrgjzScksvlMJlMaGtrg1qt3vRwrMFgwMMPP0wVRPh8PuRyOdLpNILBIKanp5vaQ5PJZHDq1CksLi5S9SOv14tz584hFovB6/UikUjQPFtSkLuWCsZa6PV67N69G06nE3K5/D58osYjkUhw/PhxPPTQQzS3lkhlAjcPAY/Hg/HxcZw7dw6hUAhXr15FMpmESqWCWq1GT08P3v3ud9O8+XQ6jeXlZYyOjtLGX4y34XK5MJvN0Ov16OnpwYEDB6DVavHggw9Cr9fT/hMr1eeq1SrC4TDm5ubgcrmafl5J6hQxNF588UXk83lEIpF1G0kkimGxWPChD30I7e3tNM2CzE8ul8Pk5CQCgQDcbjfS6XRT1wvcDtL1W6VS4dixY2hra8NDDz2Ejo4OmtJSKBQwPT0Nn8+HU6dO4eWXX0YymYTH46H73XrRaDR4+umnMTIygo6Ojrr3kskkfvKTn2B8fByjo6MYGxujl2aytzYzHA4HXV1d2LlzJ3bs2IHBwUFaPA+8HcmYm5vDX/3VX2FxcRFut5uKhNxqfZIeNhaLhTo/a5tmqlQq5PN5aLVa6nRJpVL37XO/E0h6IhFw0Ov1SKfTNPX4W9/6Fq5evYp4PI5oNFonSEHEL9ZDuVxGIpFAJpPBa6+9Bp/Ph56eHpw4cYIaIEKhkMq7kshdbW3lVkOtVsPhcKCvrw/9/f3o7u5elTq7FslkEgsLC1heXsbk5CQmJyfXJTqyGTSNoUEuIxqNpq6rMrG8UqkUXZyk+JFYs7XymuTBJoWSuVwO4XAYHA6HNhVaKRXZKhAPAum0KZVK6QIjuaOk2G6jv594BdVqNU07Io3paqNFzQzpxMzj8ehh5/F4sLCwQLsvvxNLnsyHQqG4peJPq29wJM2B5FrncjmqxkL+/qRPBOlq7ff7aX5tJBJBIBBAJpOhhoVCoaAHOGnORyRaW9WzvJmQ/Yx0bxYIBNDr9TCbzdSBotPpVkmIEmoP8VgshmAw2BKRIiIrDeCuO3STs4A4YHQ6Hex2O9ra2qBSqejzWSv6EIvFUCgUwOPxWnbNEUNDLpfDbDbD4XDQCBeJ5BeLRUQiEZrLTros36nZYS3EK0/ENGw2G3UukH8jlUrRmg/S26pV5pVkU5BO1EajkabpkLVD0hBJdsXc3ByNiN0OPp8PqVQKmUxWtw4rlQr4fD4UCgVyuRx0Oh1KpRL9HuKVb/Y5rG1ESM7aSCQCv98Pl8uFxcVFZLPZd+w1JwZKKBTC8vIy1Go1XcMkkkGiQ0KhkIptrJRhb3XIHVepVMJgMMBgMNC1ejvIPKTTaVprm0wm72uqWVMYGiSX1ul0QqvVolKp4NSpU7h06RKVLyOeA9JkSalUQqvVUq/+zp07odVqqTIBeQhIGk06ncbp06dx+vRppNNpWqDUSpBGOAqFAlarlTbA4XA4iMViOHXqFObn5+HxeDb0++VyOaRSKdXA5vP5yOfzyOfziMfjVKa02R/efD6P6elpuFwuqlVOtPcLhcI79rCRg1ehUKyZttLs87MeyMV/fn4eL774IpUHJspdQqEQkUgEly5dQiQSwYULFzA/P49wOEwL6XO5HG0mRLoQi0QiFItFmrc9NzfX0p7lzcRoNMLpdEKv12P//v10PyMGms1moymTa5FKpfD6669jeXkZExMTmJiYQDAYvOvLe6vA5XKh1Wohl8sxODiIhx56CAaDAQ8++CC0Wi01xoixHA6HMTMzA5fLBT6fj4GBAUSjUSwuLrbcWaBWqzE0NASLxYLDhw+jt7cXOp0OfD4fmUwGoVAI4XAYr7zyCq5du4alpSXqrFvP/sTj8cDlcmlBvd1up8XRJKXI5/Ph2rVr8Hq9eOuttzA5OYlEItEyzzGfz4der4dcLsf+/fvxvve9jxa71xoG165dw+nTpzE/P09rW9bjCVYoFOjt7UV7ezukUimNuvH5fLS3t+Pxxx9HLpfD0aNHkclksLCwQD3OJ0+ebJnoBnm+lpaW8JOf/AQejwezs7Ob2hOpWq3SyIjBYEChUIBMJsMTTzyBo0ePUlnsyclJ/OAHP0AwGNxS6qQCgQA7d+5EW1sbLb7XarUwGAy3/blqtUolwq9evYrvfve7CAQCWFpauk8jv0nDDQ0OhwObzUbTAkgDoMnJSZw+fRqRSASZTIZuXlwuFzKZjBoZO3fuhNlsxmOPPQabzUY3SOBtryzp1pnNZjEzM4NQKIRAINByhwvxdJKIg16vp+9lMhlMTU1henp6QxeLWjlIUjzJ4/GoXjiJlrSCp4WoZN0rSE6oRCJZpfBwu2ZErQRJfQgGg7h48SKMRiP1oBBJ5VgshtHRUXg8HrzxxhuYmppalWdMoj9msxkajYYar0tLS5ifn0cgEGj61Ir7hVKphNPppJcQq9VKazT4fP6qgu+V5PN5jI2N4caNGxgfH8fExARKpVJLp4veDlL3o9Vq0d/fjxMnTkClUqGtrY2uUeDtTuPEo+fxeMDj8WC1WgGgJdLLViKRSGjkpre3F319ffS9UqmEaDSKQCBAi3Hvtvs0iZ6bTCbs3bsXNpsNJpMJCoUCAGg/hImJCbhcLnoJbyW4XC6USiU0Gg06Ozuxe/du2iQOeDv6sLy8jNOnTyMQCCAaja57HqVSKZUbJZkHxIAh2QIAaF3g+Pg4xsfHcf36dZw5c6ZlDA2yx4TDYapwFwwGN3VfJ+uNSAqXy2UIhUKMjIxAJBJRx59Wq8X58+dRrVZbRiVzPfB4PHrf3bt3Lx599NF114emUin4/X5MT0/j5MmTDek70jBDg8vl0nQcsmFWKhVcvHgR8Xgc8/PztFETh8OhDdIUCgVGRkbgdDppQyaRSASXy0U91sVikaZqCIVCKpeo1WrR3t4OPp+P+fn5lrngkHoTUhtQW4BLIGHs9RZProVarYbdbofBYKDFXaSgr7Z4qJUv0O8E0hzNYDBgYGCANrCqJZFIYHJyEm63u6V7bBDlj3Q6jdnZWQSDQQDApUuXaKfvWCyG69evIxaLUblCYoSSdEbyfBNVKmJozMzMYGxsjP7e7Qqfz0d/fz8sFgs6Ozuxc+dO2uFVKpXSPOi1JAtJvncoFML09DSCwSCVAA+Hw1tCAKMWsg/K5XI4HA4aybBarejv76fF3yvTGUkKi1arxZ49e9DR0UGdT8FgED09PUin01hcXKQNKZtVCphQ26yRFH6THi1erxcXLlygtSh3kxMPvN2oU61Wo7OzE/39/bTgtFKpwOVy0WZply9fRjAYfEcqh42its6AzCMxMkqlEjweD+LxOKanp2na7Z0iGVwuFzabDTqdDkNDQ9i7dy9Nx7rdzwCo64vTSggEAohEIphMJjz00EPw+/24cuUKrYW807NEMjXIc1rrJCB/Iz6fD7vdTiV0LRYLVCoVzbwgl27i2EqlUltCqEUoFEKtVkOpVNL15HQ6171GiKF88eJFzMzM3LeajJU0zNDg8/mwWq0wGAzUI7OwsIBXXnkFS0tLuHbtGvx+P33wVSoVHnroIbS1teHYsWPYtWsX9VTFYjGcOXOGdniNx+PQaDQ0Fau2YdvAwAC4XC4uXLjQqI9+1xCVKZvNhkcffRRWq3XNZjgkLWgj4UpyuPT09KCtrY3mPRJVIJ/PB7fbva1TXEgeqN1ux4EDB6DRaOo2RQA0jcjn87V82LZarSIej+P69evgcDg4d+4c3eBIHjhZDyvXBZfLpWl+fX19OHjwIE1JSKfTuHz5Ms6dO7dlpEU3ikgkwsMPP4xDhw7B4XBgx44dVFq41ru6FkQBbnJyEt/61rcQDAYxPj5OHTRbKZJBLhxEVeqRRx6haUM9PT23LIwH3s5tlsvlMBqN1FNN1rfL5UIoFMLPf/5zzM/PY2pqqulrW4ihQWoUq9Uq3G43bty4gampKbz44ouIRCJUUvRuINGejo4O7Ny5Ew888ABdj+VyGZOTkzh37hymp6fxq1/9CqlUqiWdKsQZIhKJ6DwSSC+RhYUFXLp0CePj4+ty4vF4PPT19WHnzp0YHh7Gu9/9bkil0lumO5Kfqf173um5bzaIQ8npdOLpp59GOByGWCym8xePx297ZyANdsmzXVt/RtRIRSIRDh48iF27dkGlUlGnFZkn8l+RSASj0Uidza2OWCyGw+GAwWDAoUOH8Oijj9KamPVQqVQwOTmJX/7yl/D7/Q07ExpiaJBcRbPZTGssiNFAGt+USiVa+EK6PDudTlgsFshkMpTLZUSjUbhcLkSjUczPzyMUCiEWi9HiUqKYRGo7WhWBQACxWAy5XA6DwUAVZ2qpTdm5E7VF5UTJijRns1gs0Gq1tMiythnTVvKO3i0kqkZCtCKRCAKBgK6rfD5PCyNJwWUrCg6spFY44W68onw+H2q1mnpjpFJpnVwkkTZs5svc/UIoFNJUPCLHeqfLBimgTiaTiEajCAaDtB6jUChsibUH3Dwr5HI5lZQm6jIdHR3Q6/XQaDTUG3o7Lx+Zy1ovJykQ12g04HA4cDqd4PF4SKVSNDpem7bbTOTzeYTDYfD5fExMTCCdTmNycpIqjdVKG68XkppL5ppEzsmFLpPJ0G7uwWCQphHdTXF5M0GyKkgEvxYiZ1srREM+IzF6iYFAIhEymQxisRhtbW00M0Ai+f/bO88gO6/7vD+3997r9oIt6JUASEqkSIqUKEuRLEueKBlLLsnEHn9I4kmdjBPZk+RDMnZsJ44sazIyLdoURVuNpMACEL0vdrG93L29917zAT6Hd4EFiLLALXt+MzuUFsDivQfv+57zb88jgUgkuq8MNEncdEIyr7k9OJfLUQ8k8u4hZ7zm9u7b32nZbBaJRAISiQRmsxlyuRwOhwMmk2lDq3zz+UStVkMmk93xvOdyOdoiFIlEEIvFuiLRIpFI0N/fD6vV+kBy+uVymUrL+3w+xONxZLPZlj2nTzzQIEYvarUan/nMZ3D48GHI5XKEw2F4vV4sLi5SZ1G1Wo2DBw/ipZdegtFoxO7du6FQKBCLxTA3N4fLly/jzTffpOpUxEG2VqvBbrcD+Ng0B7i1+OQg2O4PcjNEWaSvrw979uyB2Wy+Z4bkXnC5XHC5XCgUCmqEMzAwAKVSiQMHDmBiYoIGMp24eTwueDwenE4n+vv70d/fT0u2JBgLh8MIhUJwu91U0WE7r59MJqPD4/39/RuCV8bHkKyqWCyGWCzeNLu6GWTIb319HXNzc5iamkIymaTvwE56v90LoVCIyclJOsf3qU99ipr5CQQCmu18GEjywGazwWw2w2w2o1Qq4a233kK9XkcsFmtbKe9wOIxTp05BJBLh0qVLkEqlyGQy9N0TiUQeOJAXCoWw2WxQqVTYv38/9u/fD6fTCYFAgHK5DLfbjWQyiampKVy+fBnxeJwGtp14v0kkEuzevRtjY2Po7e3d8MxVq1W4XC5MT08jEAhsOPjyeDw6TyqRSKBQKKBSqTA5OQmtVovdu3ejv78fCoUCUqn0visUnXY+qVQq4HK5WFtbw5kzZ1Cv16lDd7FYBJ/Px5EjR2iVtnnIHgCuXLmC9957jw7j6/V6TE5Oore3947qOJnNJa2RzUFGo9HA4uIipqamsLS0hHfffReJRKLjOwoAwG6341vf+hYGBwc/cfC7mXg8jr/6q7/C4uIibty4gYWFBTpv2wpaEmiQDJ7JZEJPTw8KhQLS6TRSqRR90EQiETUhGhkZgUajoYoXoVCISp3Nz8/Tl2vzIhLpOJJtITMMpKWgEx5kAmmlkMvlNENMaK44kLaB22XnmsuLpM9ZoVBAr9dTBSutVktbsoiN/XY+KG+GRCKhc0XNh+ZGo0ENqpqzX510j201AoGAmqbJ5XIIBAJaHalWq9t6bZoha0Jmy0gG+vae8c0gB5NsNot0Ot2RffKfBBnYJYpcExMTG2RpSRb4fmhumSKHFy6XS1ssZDIZ6vU6bDYb9Ho9PUi1I2T4lsvlIp1Og8/n0yohuZ8e5BkjAa9CoYBGo4Fer4fRaKQKjtVqlRp9ka6DTCbT0c8ykbW9W0WDGL2S+4AYl/L5fKhUKmqOSBQwe3p6YDAYaEs46aZo7jQg++/tfxeRCs/n8x0huEKuuVarIZlMUqVLIs1LTBpJlUIikWzIyHM4HEQiEWqUqNPpYDAYqAEdeTbJfXn7e7BZfr1arSIWi8Hr9dJB9FQq1dFVXdJGRwRCbveuuRtkXQqFAtbX17G4uIhgMNhyYYEnHmgolUrs2LEDZrMZdrsdGo0G8/Pz+OCDDxAOh8HhcGAymfDUU09haGgIAwMDGBkZQa1Ww+LiInK5HD788ENMTU3B5/MhlUptmrkhqhwWi4WW91wuFy5fvoxoNNoxZTUOhwOLxYK9e/diaGjojtIZ0a32+Xz0xiQvN5vNtqF/ubkH1GQyYXh4GBKJhLqgklYEoVDYthtsO0IqGgsLC/B6vbRtqt03i8eJWCxGf38/BgYGqHBBPB6Hx+PBysoKkslk1xoqPQjlchnnzp2D3+/HwMAAdu7cCY1Ggx07dkCpVG54ZjeTUu52iIStyWSiCZZqtUoz6eFw+L430UKhAJfLhVwuB6fTSVuDiEAI8LF52/PPP4/Z2VnMzc09Ub35+6U5aCoUCjQxdPvB9n4gLaFGoxGf+tSnYLVasW/fPgwMDIDP59MKyalTp7C2toapqSna792Jzy8JGKRSKT3gEjf15t9jNpsxODhI11alUmHXrl1QqVS0dY8MIkskEpoIBUAl9ePxOCqVCnK5HBqNBiYmJjA8PEz/HtICXigUcPXqVfz0pz9FJBJpy3uuGTITWq1WMTU1RUU9SOKEVFdzuRyi0SiMRiMOHjy4oY2WzPHV63XayXL58mUAtwwiyfnw8OHDG1qwSMI4lUrhgw8+gMfjwdLSEhYXF5FMJrtCLn337t04duwYBgYGNvVMuhuZTAbhcBhra2tYWVnByspKWySgnvjOJZVK4XQ6qTIDaZs6efIkqtUqOBwObZk6evQoVCoV9Ho9EokEpqam4Pf7cfbsWZw5c+aeFvZisRg6nY5KyBUKBYRCISwuLqJQKLRs+v5BIb4hAwMDsFqtdwQapAcvEolQ1Qby8nc4HDh06BD1xiBqQXw+Hw6HA5OTk12hzNAONA+VstkD0Bksu91Os4XZbJbqxBcKhY7Ohm4V1WoV8/PzWF9fh9/vR6FQgMVigdFopP3JZI22a6BBjPjIsHe1WqWVb5/Pd98ylqlUCpcuXUIikcCePXswNjYGm80Gu92+IdCwWCzYs2cPSqXSfTnutgoSUDxq0oy0MpvNZuzatQtOpxMDAwMwm80oFovIZrNIJpOYmZnBzMwM/H5/SyQyt4pmmXiFQgG1Wn1H+x2Xy4VGo4HFYqFrYLVa8alPfQomkwkjIyMwm813/GyiyhWNRqlPUKFQQCKRQK1Wg16v3xBo1Ot1ZDIZpFIpLC8v49KlS9S7qt0h1dfV1VWsrq5u+nuKxSJSqRR6enrQ29sLYGNVRygUolwuU6GZ9fV1hEIh2O126hsxNja2IdCo1WooFAqIxWL46KOPcP36dYRCIYRCoQeqcLYrJNnx8ssvU5+X+6VQKCAYDCIQCMDv9yMYDD7GK71/nvjOJZPJMDw8DJvNBpFIRNubqtUqZDIZval6e3uhVCqpuV4kEsHFixcRDAYRDAbvmg0lZn59fX0YGhqCSqWipd5gMNgxrVPkkCESiajzq9FovKPsKpfLYbFYwOFw8Morr9C+xEajAYfDgZGREdqq1vxny+Uyrl+/TsvAREbtQW7q7QSHw4FSqYTJZIJKpbqjdSqTySAUCiGVSm3rIEMmk1GZZLPZTA/MmUwGXq8Xly9fht/vb4ssS7tADoqRSASzs7PU8JDo+1utVmg0GuoTBHw8X6DVaqFSqSCXy1GpVLpGhIBQqVSwuLiIYrGIcDgMl8uFWq2GTCaDUqn0QOpuhUIBKysryOVykEqltF1t165dGw6aZJC109R/HhTyDrNarTh48CB1n2+W7S4WiwiFQgiHw4hGow/kI9GukDalXC6H5eVl8Pl87Ny5E3q9nv578/l8OJ1OqmLU09NDlSyJIiNxmo/H4ygWi7QSQRJ/+XweiUTijpmOZiqVCtxuNwKBAK0SdZqny70oFAqIRqMAgLNnz0KpVFJxh5WVFaytrdGEE3EWJ9UcYsJ3+5knFovh+vXrCAaD8Hg8iMViVHa/3c9194JI+KrVagwODsJisUChUHyiwlS9Xoff70c8HqcqaYFAoK0kup94oKHRaHDkyBHYbDbI5XJkMhnk83kUi0U4HA788i//MhwOB43krl+/jvfffx9+vx9vv/02VVbZrCLB5XKpgdG+fftw+PBhAMD7778Pt9uNpaUlKlvY7jckj8eDTqeDUqnE0NAQdu3aBblcfkeGjTjgDg8P49ChQ3cMUZFMHSmrE3Wkubk5nDx5ksrxkZ/BAo3NIQ7Xg4ODMJlMm778VlZWEI1Gu+qg96BotVrs2LEDQ0NDGBkZQW9vL+LxOKLRKGZmZvDWW29R3412fwafBEQ9irQZuFwucDgc/OxnP4NYLMYrr7yCQ4cOYXh4GGazecN9p1KpUK/XYbFYoNPpUK/XqZ9Jt1AsFnH27FlcuHABUqkUMpmM9mbX63UUi8X7rk43K6gRz5FisYiXXnppw3uPz+dDKBS2dTVjKyCZ5R07duDrX/86tFot+vv76QAzcMsXaG1tDWtra3C5XPB6vR2fSKnVaigWi0gkEjh79izW19chkUgwNja2QSZ1586dNENer9dpAEqqaqVSCV6vF1NTU4hGo7h06RLi8Th8Ph+i0ShEIhFkMhn0ej0+97nPwel0UsNDQrFYxI0bNzA3N4fl5eWu86lKp9PIZrPw+/1YWFigsy5cLhflcvmOwffm9j9ianh7Jdfv9+PHP/4x/H4/pqenEQ6HO+JM90mIRCLs27cPQ0NDOHz4MIaGhmjb7L2o1Wq4efMmrl+/junpabzzzjv0TN0uPPFAg7gqi8XiDcM8jUaDDikrFAoqo0ecXIPBIDKZzKZBBofDgVgshkAggMFgoL19tVoNlUoF0WiUmu90yg3J4XBoeVcsFt8hD0ogQ1NEUaD5kEEGb0mrAXk5VioVrK+vw+v10n5VtVoNo9G4YaiccQsSsBGFEbFYTNWmml3TycPdCffX40Imk1FRAbFYDB6Pt2FoOZvN0h7aToM8k+R5I5nHR/33Jn+++WeSSi+RFL29zYwMSZKqp1AovKuxXydDhnKBjwdNm31byPDzg0D2CyKGcfuaFYtFKg/bzc8ymfsh0unEpFUgENADdiaTofsvUTTrBsg9lMvlkEwm6dmCBJjk+WqmWq0in89T5/V8Po+1tTWsr6/TWclkMol0Oo1isQipVAq9Xg+TyQStVrvBd4nI+ZMBeyKj2233G1lnchYhIjXA3YUcyNrL5XIqXc3hcGjAR+YzkslkV1RwiRIr8flxOBx0cP5e73PybiTVNGKkSaq97UTLVKeEQiFtmSIvMCK7KpFIcOHCBayuruL69es4efIkstks1Ua+PeIXi8V0aObTn/40jh8/DuBW72A0GsV7772H2dlZJBKJjnmQuVwunU/R6XTUE+RuN148HseZM2eQTqdp7y55iaZSKUxNTSGdTtOHMp/PI5lMgsPh0MCPy+VieHiYZvQYH7ewyeVyWK1WDA4OQqPR0MMmUV8hLX3bXdZ2aGgIX/nKV6izcK1WQzgcpvr+pILZiZuDUCiE3W6HRCKhnj0kmdEK5HI5JBIJ9Ho9VCoV7QXvVpqDimbVqQeFx+Ph6NGjeOWVV2C32zdIhTcaDayvr+PcuXOYn59vuw17qyDBllQqpfcR2QPIgDkxrXvzzTcRDocRi8VafdlbSrVaRTgcRrFYxPLyMmZnZ2l71O37X6PRQDKZxNWrV6kpq8vlQjQaRSAQQLlcRiaTQa1WozORBw4cwJe//GXodLoNcrcAkEgksLi4CL/fj0uXLmF2dvYTje06HfKskv9u9llJtUOj0WBoaAhGo5G2m+XzeeRyOUQiEdqe1g3Pp0wmo4plzz33HA4dOrRpAuR2isUiDXI//PBDWsloR6GjlkwXkpuJSM42bx4kUxyNRungqN/vR6lU2jTIIOVMIlNnsVjgdDqRSCTgcrkQiUQQCATg8/k6qveRmAIROb3bS2jNGy1R1SLGLGSNiL9ILBbD5cuX73kIEYlEiMViNODr5hfeg0CyDSTrp1Qq6YuPtKIR3fBOmf95XHA4HMjlcjidTio+UK/XaVCbzWYfKgPdLpCKq1KppP/eZFbscVVK6/X6XfXPyXuBmEfej/9GJ9Pc+vQwkGwqMf8aHR2FSqW6472azWYRDAZpINmNNPu3CIVC2kZF7h9SqU0mk1hfX++K2YzbIW2LPB4PyWQS0WgUHA4H5XL5Dgnler2ObDZLZynm5+eptH5zGygRL5BKpTAajdixYwfUavUdJrulUgnRaJTOvnSLwdz9cK/3JDESFovFUKlUdEaBZO9JRZx0EHRDUq+5o8RqtVIPuE+iWq3S+9bv98Pr9T7mK3142kLGpFqtolAoIBAI4J133oFKpcKpU6ewuLiIUChEPTJuv0HVajXVrH7++edht9thtVoRi8WwurqKDz/8kBqpdZqUZqVSgdfrRTKZxOrqKtxuN+33BEBLrV6vFy6XC4FAAKdOnaIVDQC0rEYeSsaDo1QqcezYsQ1+LqSyRF5+xKTobvdpt0MGk4VCIZRKJTUzJK1Ai4uLOHv2LJaXlzsq2L8dtVqNL3zhCxgcHITH40EwGEQ4HMbc3Bw9hGzlc1ar1ejPrtfrOH78+EOb021nSHuQTCbDyMgIdDodJicnYTabIRKJ7uiBDgaDuHHjRkfJoD8oPB4PfX196OnpwdDQEHWx5vF4dNYnEonQYftsNtt1QRdpDSsWizh//jzC4TA1hpRKpTRxlEgkEIlEkE6nqcS+2+1GIpGgrXw8Ho8GGM8++yz27NmzISNP5gxI0iAQCODMmTPw+/2IRCLUUXs7Q4byBwYGcODAATidTuptk06ncfr0adrp4vf7aeKq07HZbPj6178Ou92Onp6e+/5zsVgMb775JpaXl7GwsPAYr/DRaYtAg2RPIpEIzp49C5FIhMuXL2N9fZ0qqWyGQqFAX18fHA4Hnn76afT29iIWiyGVStHyNzEY6rSHuFqtIhgMgs/n06qOTqeDRqOhZjfxeBxXr17F2bNnEQ6Hce3ata7s82wlcrkce/fupY7gt5sllstlGtB1W8bvfiFtGGSjJVU40ha5vr6Oa9euUYnHTkWhUOBTn/oUDh06hPX1dfh8PiwtLaFSqSAWiyGZTG55oLGysgKPxwOn09nRQVorIbLfOp0Oe/fuhdPpxMjIyAaVIQKppi8sLCCfz3fFQWYzeDwebDYbxsfH0dvbSyuQwK37LpVKIRAIIBaL0XbHboO0FwPA1NQUZmZm0Nvbi0qlAplMRv0tXC4XVlZWUCqVkE6nN30OSbVTpVLh8OHDePnll6kRXXMLDGm1jEQiVDmJeG1sd3g8HoaGhvD0009jeHgYFosFPB6Pzs9cuXIFb775JvWK6OS9pBmz2YxXXnkFTqfzgf5cIpHAL37xC1y/fv3xXNgW0pJAg7QZiEQiugmQ4fBAIAAOh4N0Or2hzYK4WvP5fJjNZuj1ejgcDuzevZsOfkciESwvL1MDF7Lxd+oGTVoFPB4PLl68CIVCgZWVFQCg1Y7FxUV4vV66XizI2BqIOoZYLIZGo4FOp6ODfMQsK5fL0fUPhUItvuLWQJ5LImVLssQA6CElGo0ilUohn8939P1J9NvJ0KjRaESlUsH+/fsRj8dpcoC4dJNDxcN+ZqJ0RgZKu23Q+3FDBpsNBgP6+vpgMBgwOjpK5YKBj9s4yOEvm83Svv1urGY0D57abDb09/dDr9eDy+WiUqkgkUggl8thZmYG8/PzWFlZ6dj980Eg3Q6ZTAYrKysQi8XIZrMol8uIRqMb2iSbIYZ9Go0G+/btg8lkQk9PD5VwbZZAJ4kDt9uNGzdu0CrJdg8yyB5CpPz7+/thMBhoG5vP50MymUQ4HEYmk0GhUOjofYQglUohlUqpXP69IC2dpVIJiUSCesK12vH7fnnigQZRGmg0GpDL5eDz+VTGLJvNYmpqCuVy+Q49aTKUK5FI8Mwzz+DgwYNwOp3YvXs3Nb1aWFjAiRMncOHCBepr0GktU82Q3tDLly9jbW2NtgA0Gg2kUimqSkNaK7bDhvCkICpTarUaTqcTfX19tJpBZjOi0SjeeecdzMzMwOVytfaCWwQ5uIyNjWHnzp0YGxuj/jfLy8sIhUJYWVmhspid+iwCt/7dE4kEotEotFotbDYbent7sWvXLiQSCRiNRqyurtL+baIq87CbIo/Hw+joKHbt2oXx8XFmrvkAcDgcqmA4MTGB559/HiaTCYcPH4bRaKQypY1Gg6ryXblyBR6PB3Nzc0ilUlTlppsQCATQarXQ6XTYvXs3nn76acjlcnC5XGSzWdy8eRPhcBhvvfUWTp8+3bUB1+2Qd1MoFMLJkyfB4XDovz1RTdrMcZ2YHQ4MDOAb3/gGBgcHYTabodVqN6g31mo1lMtlnDp1Cn//93+PUCiE5eVllEqlrrvHHhRytlMoFNixYweOHz9O1TRzuRyuX78Oj8eDhYUFhMNhmujrdHQ6HWw2G2w22ye+2+v1OoLBIK2EnTx5EpFIhDqytztPPNAgbQYSiQQCgQAikQgqlQp2u52+3Ik2OhlMJpUMlUoFiURC5zLkcjmVnItEIgiFQtRU6G4ZiE4kn8/TQUaBQEBLvpVKhQZljK2F3JdKpZIaLZE+W7LhVCoV6gmxHdumiOyvSCSCVqvdYGZIHG87varYDGkpicfjkMlkVH6QDNESJ+VMJoNMJoNsNkszxXcb6N4MckBpXlelUnlHmw+ZgSGS1d3qSE+M5e41cE/2CJIZ5fP5VFbUZrPRKjgRcyCJGTJgmkql4Pf74fP5ujbIIAPgKpUKarUaCoUCMpmMZt5rtRpdCyIf2ily8FsFqVreL2R4WSKR0ISpVCqlGWpSySAzfM0yuNt9LqP5PWcwGKDRaOgZjxgqkkpGIBCgVeJOhoj88Pl86HQ69PT0wGg03uEVcjtkToXMHPv9fiSTyY6phj3xQMPr9eKv//qvYTab8ZWvfAUTExM4cuQIBgYGkMlksLa2hnw+T4edpVIplEolpFIpBgYG6ItRKBTC4/Hg+9//PuLxOK5cuULVG8gLsls2ChJ43Z4h2W6bwJOEDAX29vaip6dng2oIyU7l83mEQiF4vd6ukNl7UAQCAYxGI7RaLQ4cOIDnnnsOcrkcPB4PhUIBS0tLcLlcXSO5ms1mce7cOfj9fpohJ94aarUazz77LPL5PAKBAILBIEKhEK5du0blj+/XDZ1UiSQSCY4cOYKjR4/eYVzVaDRoYmV5eZmahHVb0oEomQmFQtq21gwJQnQ6HcxmM5RKJTUgnZycpJVIo9EIoVBIjflyuRyy2SzcbjcuXLiASCSC06dP36Hc1y2QQEyv1+PIkSMwm81wOBzUfwq45VDv9/vhdrvpIYbtL/eGJAPIl06no88paZ3M5XJYWFhAPB7H7Ows1tbWtn2QAYCqS9ntdnz1q19FT08Pdu7cCQAIhUKYnp6G1+vFT37yE6ytrXXFPsLn8+FwOKBUKvGFL3wBn/vc56BWqzfMfm5GpVLB1atXce7cOaytrVHp7U45dzzxQCObzWJubo76O9RqNdrXmMlkoNPpqLxgKpWCQqGAVquFUqnE6OgopFIpYrEYNcWZn59HOBzGzMwM4vH4k/44T4TbjfgYjx+lUgmn0wmbzUYDXQJptyBZl07pk9xqeDwepFIpFAoFTCYTHA4HANBqD1FreZAMYTtTqVTg9/uppn6tVqNS3UKhEDabDcDHJXGfz4d0Oo1kMgkA9+1NQ9r2pFIplTskHgfNkAwpkQ7uVH+Su9Hcuy2RSDZUxUjChciykmFvvV6P4eFh6PV67Nu3D6Ojo/TnAB9XI0ulEtXkX1hYQDAYpP/tRkjlTSqVwmKxwGazQaFQbDAFIypMqVQKxWKx64KtxwFpZyZfzapwRL6/UCggGo0iGAzSeTUG6AykWq3G+Pg4BgcHodPp6DyCz+eD2+2mrvTdABEN0Ov16O/vx969ez9xPoMkNoPBIFZXVzsyGfLEA41isUhdRkmf2fDwMCYnJ8HhcGi5W6vVolgsUnfsarWK2dlZFItFLCwswOPxwO12Y3p6GtlstmsOM62iefMl2urbGYvFgqNHj0Kv10Mmk234tWQyiaWlJaysrHSlGsv9wOFwoFarsXfvXthsNhgMBgC3lDDIC3FmZqZrMlHALbloYgJKDv9arRa9vb30MMzj8SCRSGiJnMPhoFgsPpAPAWlxEQgEGBsbg0wmu8Mjg7RPkoMLqXp20uazGWS4Vq1WY2hoCDKZDDqdDlKpFFNTU7h06RJEIhEsFgukUilGRkaoEIHT6aTBmUwmg9FovKMKTORMT58+jatXryIYDNI9pJsTBiRgUyqVGBwcpF43PB6PHoZjsRiWlpawvLzcNc/s40alUmFwcBA9PT13SE+Hw2HMzs4iEong1KlTCAQCVMxlO0N8f0ZHR3H48GHYbDYaZPh8PszOzlJJdCLQ0C0QMSO73Q61Wv2Jv9/tduOtt96C3+/HxYsX4XK5kMlkOq7S+MQDjVKpRM2QPvroI6yuruKFF17A4OAgRCIRjEbjBsM4koEKh8M4d+4cfD4fzp49i5s3byKXyyGRSHT85toukH5lMiS5nTGbzThy5MgdQQYApFIpzM/PY319fVsGGmReSKlUYt++fXA6nRsCjfn5eSwvL2Nubg7r6+tdcy+RQIPP58NgMIDL5VLHX5IdJoGGRCKBRqOhkoUPuwbNB+VmSNaPyHmTOY1Oh7RTkEBfp9PBaDRCKpWiWCziypUrkEgk6Ovrg16vx0svvYTJyUno9XpYrVbaSgVg05mWdDqNVCqFjz76CD/84Q9RKBSQSqW6vg2VBBoqlQoDAwNU0pbL5dLZjHg8juXlZczPzyOdTrf6kjsCsp4Oh+OOQCMSieDChQvwer34+c9/Dp/P19X32P1ApNAlEgnGx8fx5S9/GVqtFn19fRAIBLhx4wauXr2K5eVlnD9/Htls9r5bTjsBPp9PkyIqleoTDVa9Xi/+7M/+DIuLi5uKEXQKLfPRqNVqiMVi4HA4mJmZgUqlosPht2fuSKvC9PQ0YrEYwuEw8vk8NcthPDqNRoO6qZtMJir/uJ3gcrnQaDSQSqXQarUbnHKbA990Oo21tTX4fL6O6ZHcSlQqFbRaLXp6emC1WmEymahbeiqVogaTxWKxK5/Per2OSCSClZUVWnVVKBQwm82QyWRQKBSQy+V0SJQoqDzq30laKAuFAkqlEtxuNxYXF+H3+7umZUoul9PWs/7+fmi1WqjVagiFQqoeJZFIMDw8TEVE1Go1pFLphucVuDVzUKlUkM1mEY1GkcvlsL6+Tt2uyTp2e5ABACaTCSMjIxgdHYVard5gzheJRKiUbTKZRKlU6pr76XHA4XAgkUggFAphMBhoRbfZh4QIR3i9XgQCga59F94vpMIrFArR19cHi8WCwcFBaLVaSCQSJBIJVKtVrK6u0pmzbDbblS18JHl0ryCDGC2nUqnuqFS36i+uVCpYXV3F+vo6Zmdn8bd/+7f3XHyiRkXM/cig2nZ+eLeSer2OhYUFvPvuu3SIcrvJafL5fOzYsQP9/f0YGRm5wzGYHEg8Hg/efvttaga53ejt7cXBgwcxMDCAQ4cO0UFbAFhfX8fbb79NNeK7kXq9jvn5eayurkIul+O9996DXC7H0NAQdDodRkdH6UCy0+mkKkiPEmxUq1Xkcjnk83k6rPv+++/j3XffRT6f7wrVMw6HA5vNhsnJSYyNjeEzn/kMNBoNDdRGRkbw5S9/mQ7Lk+qRUCjcUMkAQCXA0+k05ubmcPLkSUSjUVy7do36uxBz027fQzgcDvbv349vfvObVOmmWXlramoKf/mXf4lwOIy1tbWObM14knC5XKpiNjk5iaeeeooqeDUaDaow5XK5cObMGcTj8a59F94vfD4fCoUCSqUSn/vc53Do0CE4HA4MDAxQCdtQKIRf/OIXOHnyJFWEI6pd241EIgG32w23290VleqWOoMThRQ2X9F6Go0G8vk84vE4lZHj8XjbYsMhrUBCoRA6nQ5Wq3XTsiaREyayrXdzie1WyOCzUqmExWKBwWCAQqHYcGgpFApIJBJdIUV4L4gTfLlcRr1eh1QqhUwmQ6FQgFKphFKpRLFYhFwup0OizYErl8ulA97NVTOiEX+7vj5pEyWqVslkEpFIhGYCu+U5bZaVJi1pBGKeCWDTwILImRMPJqJC6Pf74fV6EY1G4ff7EY/Ht0WAAYC286nValgsFiiVSohEInC5XFrRIQZgiUSC+TrcBxwOB1KpFGq1eoNMMHm+iSxrIpFAOp1GNpvt6nfh/cDj8SCTyaBUKmkVSK1Wg8/no1arIR6PIxwO01bQbqVer6NQKFDxjnK5TBXhANB3WCqVQiAQQCwW64ozRksDDUb70Gg0EIvFsLq6CqPRiEwmA6lUui1ekKQErlar8fTTT+Po0aMwmUx0ALfZ1dXn89Ee5nw+v202ZR6PB6PRCIVCgX379uHll1+GSqWCTCZDvV5HLBZDLpdDMBjcEKx2O+VyGclkEplMBvl8HkKhEDMzM1AqldBqtdixYwcdaCbSqgCg1+tx4MABKBQKCIVC8Hg8KpmcTCYxNTVFzf4ajQbW19dx7do1FItF5HI5KkVKWgu64dDM4XCgVCpht9thMBju0JYnCQHyv5shgVgymcT169eplKjL5UIqlUIwGESpVEI6nd42z6xAIEBfXx+0Wi2Gh4dhtVppwFsul3H9+nWsra1RafhcLrctntlHhc/nY2RkBLt27cLo6ChUKhWtqlUqFZw5cwYXLlyg6prd2P7zoCiVSuzfvx9msxljY2Po7e1FtVpFLBbD+vo6Tpw4gbW1Nayvr7f6Uh8r+Xwe58+fx82bNyEWi2G1WqFUKmGz2cDhcOD3+5FKpfCLX/wCf//3f981XRMs0GBQmisaxWIRPB7vro6o3QSfz4dcLodarUZvby/GxsY2yD4CH8+wuN1uRCIRlEqlrsg03C9cLhcymQwajQZ2ux0jIyMQCoUQCASo1+v0gJzJZDb0vnc79Xqdti3d7vGg0+mQTCahUChgt9uhUqnor9ntduzYsQNisZhWiiqVCl3HpaUlRCIRevCbnZ3Fhx9+2PUzQSKRiFbJNmujvf175L1UKpWQSqWo0k8gEMDly5extLRE51u2G1wuF1qtFhaLhZoVkuCtXq8jEAjQGR/SfrcdntlHhcvlQq/XUxEM0hoJ3MpIr6+v48qVK3Q2YzvtE3dDJBJRqW6j0Qi1Wo10Oo10Oo1EIoGVlRUsLS1RKfBupVqtwuPxgMvlwu12U6dzk8kELpeLVCqFSCSCxcVFnDlzpmvuHRZoMAB8rGIDANeuXcN3vvMdiEQiKp158+bNrg02eDwe5HI5FAoFNbDabD4jHA5jaWkJwWBw2x1cBAIBhoaGMDAwAKfTSQMx0ktLlKaWlpao1Gq33i/3S6FQgNfrhVgsRjweh1gspr9G7iMiXcvj8agBUzabxcLCAvL5PG2lag46upVGo4FAIEDnKEgLmlKphFAopGtRKBQQDodRKpUQi8WQzWaRTqcRjUaRTqcxOzuLdDqNWCxGEyXbjWZvl8HBQRgMhg0yv5VKBbFYDF6vF5FIhLZxbMe12gqaW2KSySSt8LL1vAWXy6XeQM1BWaFQQD6fp/Nn3TCPcD80Gg3MzMzgb//2byGTyejzSYSOpqamuiroZ4EGg5JOp6mL8cWLF+n3yQbfrS9NMqhG1GuEQuEdEr/1eh1+vx8zMzNdpfJzvxBPhwMHDmBgYAACgQCNRoOaFt64cQNnz56lkr/bbX02I5/P01aA2zPxHA4HP/vZz+6aob/9eev2qiIAKrRQLBbh9XohFAqh1WrhcDigVqtRqVRQqVQQj8cxNTWFZDKJ+fl5BAIBapxJqkLboRJ7N5qNDp1OJ8bHx6mLPWkDLZfLiEQiWF9fRzgcZnMEjwiRCE6lUojFYohGo9uqtfaTIGaRzYEGcU0nz242m+2aDP4n0Wg0cPXqVVy/fn2DCFLznF433Tss0GBsoPlG3y6QAVKSia/ValTpplQqIRQKIZ1OIxAIIJFIbMtMVbOhI2mLIkPLhUKBDien0+lttzb3olkW+XbYwe5OSEUnGo1Sc8RUKgW5XI5qtYparYZ0Oo319XVkMhlaxSBykERadDu9v26HtIKqVCro9XqYTCbI5XJwOByUy2VEo1EkEgnEYjEkk0laOWM8OCRoKxQKWFpaQjQa3ZattXdDJBJRY1OTyQSTyUQru0R6OpfL0SHo7XQfdlswcS9YoMHY9pA2Ah6PR+dTiKdLPB7Hj3/8Y7jdbpw5cwbz8/NUaWg7UavVEAgEoFAooNfrqUcBObAsLi5ienq6KzS/Ga0jm82iUCggEonA5XKBy+VumJciGXni9UAUppqrrtvpsLIZUqkUPT09MJvN2Lt3Lw4dOkT9qVKpFC5cuIBAIIDr169jYWGBHvIYDw4Rg/B6vfje976H1dVVrK6uIplMsnsRt+bUHA4HxsbGcPToUdjtdiqKkclksL6+Dp/Ph0KhwAKzLoYFGoxtD6lo5PN5pFIpRKNRarYWjUbh9Xrh8XgQj8eRy+W2XeYFuLVGzbKNRHaPSIhmMpk7hqEZjAeFVCTI88h4cIiUKDGOJBLBRLggEokgFAohlUoxafmHhFR3SatUOBym+0QqlWLVyn+AVDN0Oh3UajUVxCDJAiLzytaru2GBBmPbQ/qV0+k0vvvd7+LnP/85bZ3K5/NYWVlBNptFIpHYtsOl5XIZ09PTcLlcmJ6exk9/+lN6cCmXy5idnW31JTIYDNxqVzEajTCZTJBIJABAB27X1tbw3nvvweVywefztfhKO5NSqYTTp09jfn4eEokESqUS2WwWc3NztCLOuEVfXx9eeOEF2O12GvAmk0nkcjm4XC7Mz88jGAyyNetyWKDB2PbUajVkMhlkMhmcPn261ZfTltRqNXYwYTA6AIFAAJVKBZVKBYFAAODjfvhoNEr9RbpdKvlxUavVsLy8jOXl5VZfSlvD4XCg0+kwNjYGvV5PZzNIZTwajSIYDCISibC2qS6HBRoMBoPBYHQJmUyGZooB4MyZMygUCsjlcvB4PF3nJs9oTxqNBlZWVvCTn/wEcrkcZrMZXC6Xmt26XC6sra0hm82iXC63+nIZjxFO4z7fNpuZJ21HHublzNbuFmztHp4HXTu2brdg99zDw9bu4Wnl2hF5W/Lf5kF6Mo/WzkEGu+8ennZbOx6PBz6fDw6Hs+E+JPciaUVuBzECtsc+HPezbqyiwWAwGAxGl9BoNGgrynYxQGO0J0TcgbG9ue+KBoPBYDAYDAaDwWDcL9xWXwCDwWAwGAwGg8HoPligwWAwGAwGg8FgMLYcFmgwGAwGg8FgMBiMLYcFGgwGg8FgMBgMBmPLYYEGg8FgMBgMBoPB2HJYoMFgMBgMBoPBYDC2HBZoMBgMBoPBYDAYjC2HBRoMBoPBYDAYDAZjy2GBBoPBYDAYDAaDwdhyWKDBYDAYDAaDwWAwthwWaDAYDAaDwWAwGIwthwUaDAaDwWAwGAwGY8thgQaDwWAwGAwGg8HYcligwWAwGAwGg8FgMLYcFmgwGAwGg8FgMBiMLYcFGgwGg8FgMBgMBmPLYYEGg8FgMBgMBoPB2HJYoMFgMBgMBoPBYDC2HBZoMBgMBoPBYDAYjC2HBRoMBoPBYDAYDAZjy2GBBoPBYDAYDAaDwdhyWKDBYDAYDAaDwWAwthwWaDAYDAaDwWAwGIwthwUaDAaDwWAwGAwGY8thgQaDwWAwGAwGg8HYcligwWAwGAwGg8FgMLYcFmgwGAwGg8FgMBiMLYcFGgwGg8FgMBgMBmPLYYEGg8FgMBgMBoPB2HJYoMFgMBgMBoPBYDC2HBZoMBgMBoPBYDAYjC2HBRoMBoPBYDAYDAZjy2GBBoPBYDAYDAaDwdhyWKDBYDAYDAaDwWAwthwWaDAYDAaDwWAwGIwthwUaDAaDwWAwGAwGY8thgQaDwWAwGAwGg8HYcligwWAwGAwGg8FgMLYcFmgwGAwGg8FgMBiMLYcFGgwGg8FgMBgMBmPLYYEGg8FgMBgMBoPB2HJYoMFgMBgMBoPBYDC2HBZoMBgMBoPBYDAYjC2HBRoMBoPBYDAYDAZjy2GBBoPBYDAYDAaDwdhyWKDBYDAYDAaDwWAwthwWaDAYDAaDwWAwGIwthwUaDAaDwWAwGAwGY8thgQaDwWAwGAwGg8HYcto+0CiVSvi93/s9WK1WSCQSHDp0CL/4xS9afVkdw9WrV/Hqq69Cq9VCKpViYmICf/RHf9Tqy2p72Lo9HFeuXMFLL70EpVIJhUKBF154AdevX2/1ZXUEbO22hm9/+9vgcDiYmJho9aV0BEtLS/iVX/kV2O12SKVSjI6O4vd///eRz+dbfWltDXtetw72zN4f//Sf/lNwOJy7fvl8vlZf4qZwGo1Go9UXcS++9rWv4Y033sDv/u7vYmhoCN/73vdw6dIlfPDBBzh27FirL6+teffdd/H5z38ee/bswVe/+lXI5XKsrKygXq/jv/23/9bqy2tb2Lo9HFevXsXRo0fhcDjwm7/5m6jX6/jTP/1TxONxXLx4ESMjI62+xLaFrd3W4PV6MTIyAg6Hg97eXszMzLT6ktoaj8eDnTt3QqVS4bd+67eg1Wpx7tw5fO9738Orr76Kv/u7v2v1JbYl7HndOtgze/+cO3cOKysrG77XaDTwW7/1W+jt7cXNmzdbdGWfQKONuXDhQgNA47//9/9Ov1coFBoDAwONI0eOtPDK2p9UKtUwmUyNL37xi41ardbqy+kY2Lo9PC+//HJDo9E0otEo/Z7f72/I5fLGl770pRZeWfvD1m5r+OpXv9r49Kc/3XjmmWca4+Pjrb6ctufb3/52A0BjZmZmw/e/8Y1vNAA04vF4i66svWHP69bBntlH46OPPmoAaHz7299u9aXclbZunXrjjTfA4/HwG7/xG/R7YrEY3/zmN3Hu3Dl4PJ4WXl1789prryEUCuHb3/42uFwucrkc6vV6qy+r7WHr9vB89NFHeP7556HT6ej3LBYLnnnmGfzkJz9BNptt4dW1N2ztHp1Tp07hjTfewP/8n/+z1ZfSMaTTaQCAyWTa8H2LxQIulwuhUNiKy2p72PO6NbBn9tF57bXXwOFw8PWvf73Vl3JX2jrQuHbtGoaHh6FUKjd8/+DBgwDA+iHvwYkTJ6BUKuHz+TAyMgK5XA6lUol/9s/+GYrFYqsvr21h6/bwlEolSCSSO74vlUpRLpdZSfwesLV7NGq1Gn77t38b3/rWtzA5Odnqy+kYnn32WQDAN7/5TVy/fh0ejwevv/46/uzP/gy/8zu/A5lM1toLbFPY8/rosGf20alUKvibv/kbPPXUU+jt7W315dwVfqsv4F4EAgFYLJY7vk++5/f7n/QldQxLS0uoVqv4whe+gG9+85v4wz/8Q3z44Yf44z/+YySTSfz1X/91qy+xLWHr9vCMjIzg/PnzqNVq4PF4AIByuYwLFy4AQNsOqrUDbO0ejf/9v/831tfXceLEiVZfSkfx0ksv4T//5/+MP/iDP8Df//3f0+//u3/37/Bf/st/aeGVtTfseX102DP76LzzzjuIxWL41V/91VZfyj1p64pGoVCASCS64/tisZj+OmNzstks8vk8vvGNb+CP/uiP8KUvfQl/9Ed/hN/8zd/ED37wAywtLbX6EtsStm4Pzz//5/8ci4uL+OY3v4nZ2VnMzMzgG9/4BgKBAAD2vN4LtnYPTywWw3/8j/8R/+E//AcYDIZWX07H0dvbi6effhp//ud/jh/+8If4tV/7NfzBH/wB/tf/+l+tvrS2hT2vjwZ7ZreG1157DQKBAL/8y7/c6ku5J20daEgkEpRKpTu+T1pYNitdMm5B1uZrX/vahu+TPr5z58498WvqBNi6PTy/9Vu/hX/7b/8tXnvtNYyPj2NychIrKyv41//6XwMA5HJ5i6+wfWFr9/D8+3//76HVavHbv/3brb6UjuMHP/gBfuM3fgPf+c538Ou//uv40pe+hL/4i7/AP/kn/wS/93u/h1gs1upLbEvY8/posGf20clms/i7v/s7vPjiixtmhdqRtg40LBYLzRA0Q75ntVqf9CV1DGRtbh/yMxqNAIBEIvHEr6kTYOv2aHz7299GKBTCRx99hBs3buDSpUt0mH54eLjFV9fesLV7cJaWlvDnf/7n+J3f+R34/X64XC64XC4Ui0VUKhW4XC7E4/FWX2bb8qd/+qfYs2cP7Hb7hu+/+uqryOfzuHbtWouurP1hz+vDwZ7ZreGtt95CPp9v+7YpoM0Djd27d2NxcZEqYxBIH+Tu3btbcFWdwb59+wDc2StK5lpYuXJz2Lo9OhqNBseOHaMDfidOnIDdbsfo6GiLr6z9YWv3YPh8PtTrdfzO7/wO+vr66NeFCxewuLiIvr4+/P7v/36rL7NtCYVCqNVqd3y/UqkAAKrV6pO+pI6CPa8PDntmt4a/+qu/glwux6uvvtrqS/lE2jrQ+PKXv4xarYY///M/p98rlUr4y7/8Sxw6dAgOh6OFV9fekJ69v/iLv9jw/e985zvg8/lUbYSxEbZuW8vrr7+OS5cu4Xd/93fB5bb166btYGv3yUxMTOBHP/rRHV/j4+NwOp340Y9+hG9+85utvsy2ZXh4GNeuXcPi4uKG7//1X/81uFwudu7c2aIr6zzY83p/sGf20YlEIjhx4gS++MUvQiqVtvpyPplWG3l8El/5ylcafD6/8a/+1b9q/J//838aTz31VIPP5zdOnjzZ6ktre37t136tAaDxy7/8y40/+ZM/aXzlK19pAGj8m3/zb1p9aW0NW7eH4+TJk43nnnuu8V//639tfOc732l861vfavB4vMZLL73UqFQqrb68toat3dbCzL/uj5MnTzZ4PF7DaDQ2fv/3f7/xJ3/yJ43PfvazDQCNb33rW62+vLaFPa9bD3tm758//uM/bgBovP32262+lPui7QONQqHQ+Jf/8l82zGZzQyQSNQ4cONAxi9tqyuVy4z/9p//U6OnpaQgEgsbg4GDjf/yP/9Hqy2p72Lo9HMvLy40XXnihodfrGyKRqDE6Otr4wz/8w0apVGr1pbU9bO22FnZouX8uXLjQ+OxnP9swm80NgUDQGB4ebnz7299mB+Z7wJ7XrYc9s/fP4cOHG0ajsVGtVlt9KfcFp9FoNFpZUWEwGAwGg8FgMBjdB2skZDAYDAaDwWAwGFsOCzQYDAaDwWAwGAzGlsMCDQaDwWAwGAwGg7HlsECDwWAwGAwGg8FgbDks0GAwGAwGg8FgMBhbDgs0GAwGg8FgMBgMxpbDv9/fyOFwHud1dAwPowbM1u4WbO0engddO7Zut2D33MPD1u7hYWv38LC1e3jY2j08bI99OO5n3VhFg8FgMBgMBoPBYGw5LNBgMBgMBoPBYDAYWw4LNBgMBoPBYDAYDMaWc98zGgwG4xYymQwajQZyuRwjIyNQKBTw+XyIRCJIpVLw+/2o1WqtvkwGg8FgMBiMlsICDQbjAdFoNJicnERPTw9+7dd+DX19fXjvvfdw/vx5LC0tIRaLIZ/Pt/oyGQwGg8FgMFoKCzS2GTweD1wuF0KhEFKpFFwuFwKBAFwuF5VKBZVKBaVSCdls9qEULLYDUqkUZrMZZrMZOp0OGo2GfsnlcqZGwWAwGAwGgwEWaGwrOBwOZDIZpFIpent7sXv3bsjlcpjNZohEIvj9foTDYbhcLpw9exaFQqHVl9yW2Gw2vPjiizCbzdBoNAAAg8GA4eFhJJNJ8PnssWIwGAwGg8FgJ6Jthkgkgkwmg06nQ19fH1QqFWw2G6RSKcRiMQQCAdLpNLhcphNwN2QyGaxWKwwGAwQCAQBAIBBAJpNBLBazigaDwWAwGJtA9kcejwcej4dGo4FarYZGo0G/GN0FCzS2CTweDwKBACMjIxgaGsLo6CiOHTsGDoeDaDSKSCSCQCAAj8eDaDTKhpkfkFgshqWlJfj9flSr1VZfDoPBYDAYbQWXy4VOp4NMJsPk5CSOHTuGXC6HS5cuIR6Pw+VyIRQKtfoyGVsMCzS2ARwOh85i9PX14cCBAxgeHsaePXtQKBQQCoUQj8cRiUQQDoeRTqdRr9dbfdltDYfDoevaaDQQj8exvr6OcDjM1o7BYDAYjNvgcrnQaDQwGAw4fvw4/sW/+BeIRCIQiURYXV1FJpNhgUYX0paBBofDgVQqhUgkglQqhVKphEQigdFohFgsvq+fUSgUkEwmUS6XEY1GUSgUkMvltqUaEJ/Ph1qthkwmg81mQ39/PyQSCbxeL5LJJGZmZuDz+eDxeBAMBpFIJNhheRP4fD64XC5EIhGEQiEEAsGmbVKs9MtgMLYTXC4XXC4Xg4OD6Ovro6235XIZi4uLiMViKJfLKJfLLb5SRqvgcDjg8XiwWCzo7++H2WwGl8uFWCyG3W4HANy8ebPFV8l4HLRloMHlcmEwGKDX6+FwODA6Ogqz2Yznn38eer3+vg5ywWAQN27cQCwWw7lz5+D3++HxeODxeLZdH6BQKITD4YBer8e+fftw9OhRuN1uXLhwAT6fDz/60Y/gcrnoRlCv11n7zyaIRCKIxWLI5XLI5XKq2rWd7iUGg8FohsPhQCgUQigU4rOf/Sy+9a1v0UAjkUjgj//4j3HhwgUkk0nE4/EWXy2jVZCgYvfu3Th27Bj6+/vB4/Egl8uxf/9+9PX14fLly62+TMZjoK0CDSK7KhQKYTQaYbFYYLPZYLVaYTabYTKZoNPpAHxy1rjRaMBisUAkEsFms4HH46FYLCKVSqFSqSCfz2+bAyJ5mJVKJcRiMUQiESqVCiKRCEKhEJLJJDKZDGq1Gqtk3AXSJsXn88Hn8yEQCMDn88HhcNBoNFCpVFAsFjs+QBMIBHSeRygU0u9zOByIRCLweDzaNrYZjUaDBqrZbJZKJrOZH8ZWQfYJLpcLhUIBsViMWq2GSqWCarWKVCrV8c9hqyHvAQKp5HK5XLpPkHcel8uFVCqFVCqFXq+HyWQCAPrvIRQK7/nO6AbI+vB4PCqqQoadyeduNBrI5/MoFotURn67nEH4fD5kMhmUSiW0Wi10Oh2Vgif7RaVS2Tbrsd1oq0BDJpNhYGAAOp0Or7zyCnbu3AmlUgmdTkczyfd7I6rVauzatQulUgljY2MoFAr46KOPcPr0aQQCAUxNTW0b+VaJRIKhoSHY7XZIpVKkUiksLy/jF7/4BSKRCGKxGKrVKnvIPwGhUAiJRAK5XA6VSkVflJVKBdFoFKurqwgGgx17qBYIBLDZbFCpVOjr60NfXx/9NZFIhNHRURgMBvB4vLtK+JbLZRSLRYRCIfzsZz9DIBCA2+1GOBx+Uh+D0eVIpVIMDAxAo9Hgc5/7HHbt2oVoNAqfzwev14s33ngDgUAA9XqdvdMeAi6XSz2CCHK5HDt27IBSqUQ8Hkcmk4HX68W1a9fA5/Oxa9cu2Gw2DA0NQSaTIZ/P00RWKpVCLpfr2rYpEvDu2LEDGo0GExMT6Ovrg0KhgNFopAFbrVbDmTNncP36dfj9fkxPT6NUKrX46p8MKpUKBw4cgMlkwoEDBzA5OQmxWAwul4tMJoMzZ85gfX0dbre71ZfKeAy0VaAhEAhoRmRoaAi7d++mcxqE+904hEIhfVFarVbU63WEQiG43W7U63UIBAIUi8Wu34g4HA4EAgE0Gg30ej34fD6KxSISiQTcbjfi8TgKhULXr8NWwOfz6XwG+S/J7uXzeSSTSeTz+Y6tCvF4PKhUKmi1WvT09GB8fJxWbCQSCQ4ePAi73U6rOptRKpWQy+Wwvr6OmZkZVKtVRKNR2mLG7jPGo0LeZ2azGfv27cMzzzwDn8+H5eVlKBQKyGQydr89ICTrTvroySGZoFQqMTw8DJ1Oh1AohFgshkqlQiu7ZrMZDocDGo2GSn7ncjlks1mUSqWurWpyuVxaxTCZTDAajZiYmMDExAS0Wi0cDgcNNEiVl8yrbCcJeZFIBIvFArvdvqEzBbi1Z/h8PqyvryOdTrfwKhmPi7YJNMgAeG9vL6xWK/R6PSQSyYbybTNkAyH//aSHlsPhYGBgALVaDSsrK0in01QpKJlMbulnaRdUKhUMBgP6+vqwf/9+2Gw25PN5XL16FYuLizQz1Y0bwFbD4/EwODiIHTt2YGRkBDweD+VyGYFAAKlUCm63G36/H4VCoeMCDXK4UKlU+PSnP43R0VFYrVZYrVYaaAgEAmi1WtoudvtnJK0RPB4PEokEZrMZL730EuLxOK5evYrl5WUEg0EsLS3RtoFOWydGeyAUCqHX62EwGKg4iEKhQE9PDwqFAjQaDRQKBXK53LbJGD8KZJ8Qi8Uwm82QyWTYvXs3BgYGANzaY0kLskwmQyaTQT6fh91uR7FYBJ/Px/Hjx9HX14eenh5wOBxkMhnMzc0hEAggHA4jn893TTsbOasIhUIMDAxg9+7d0Gg0GB8fh0qlgsVigVKpBJfLRSKRAI/Hg0wmA4fDgdFoxPj4OCqVCoRC4bZIdgK3uip6e3vhdDqhUCgA3ApEk8kk3G43ZmdnsbS0hEQi0eIrZTwO2iLQIP3vUqkUPT09cDgctF1qM8iDWa/X6WHlk3pAORwOent7YbFYYLFYEAqF4Pf7kUwmuzrQGBwcxNDQEPbu3QubzYYTJ07Qg18ikUCxWGz1ZXYEJNAgQ2x8Ph/lchlerxfhcBhutxuBQKAjNw0OhwM+nw+FQoFnn30Wx44dg1gsvuP5a+41vj1bzOVyaaDB4/FgNpvx8ssvo1wuw2634+bNm7hx4wbC4TCd3WCBBuNhEAgE0Ol0dwQaCoUC2WyWBhokoGXcG5VKRVvRJicnodVqcfToUYyNjQH4eL8lzz9pSTObzUilUuDz+Th27Bj6+vpoNSOTyWB+fh4+n4+qPnYLHA4HMpkMcrkce/fuxa/+6q9CrVbD6XRCLBajUChQYZVEIkFn+oRCIUwmE6rVKmKxGFUt7MQ940ERi8Xo6emhLWUAkM/nEQwG4Xa7MTc3h6WlJbYndCktDTTIi0ur1UKv16O/vx8OhwNWqxUSiWTTP9NoNGjPZz6fpy86vV5Pe/6ICoZUKt0QfJDecqFQSA9Sd6uYdANarRajo6NwOByo1+tIp9O0xSAUCrFKxn3A5XIhkUggk8lgNBphs9mgVCpRLpeRTqexvr4Or9eLRCLRsRtGs1Mr2RBJ5YJQr9fpgSGTySCbzVJHV+BWxkogEEChUECtVkMgEEAikYDP50On06GnpwelUgmRSATJZBJLS0tIp9O0rYJxqw9eo9FAJBLBZDJBKBSCx+OBy+WiWCwim82iWCzC5/Mhn89vW/EGHo8HqVQKuVwOPp+PRqOBUqmEQqGAVCqFYrGIUql0x/uNx+NBqVTStlqlUolisYh0Ok1l0Ls18UIScSKRCHq9HkKhEHK5nEqLDg0NQalUoq+vD0qlEgqFAlwuF/V6na4juRdJW5pCoaDKQQqFgrZTVqtVlEolpNNpKr7SDZD7jsyrWa1WGlwVi0VMT0+jVqvRik+lUkG5XIZUKsXw8DCUSiVKpRKd7yPtt0TpsRshrWUSiQRqtRpqtZqKjKTTabhcLvh8PlrZ6dQ9dKsh+3Cz8AUR8yHw+XyoVCrweDwUCgVUKhVks1kkEgmUy2Vks9m2qSK2NNAgL62hoSEcP34cTqcTzzzzDH0RbkatVsPq6ipWV1fh9XoxMzMDmUyGI0eOwGg0UtUqjUaD3t5emmEBbv3DkDKmWq1GLpfb8OvdxtDQEH7lV34FYrEYxWIR8XgcZ8+exY9//GOqBsS4N6RlQKvVYvfu3Th8+DAqlQoN2t577z3Mz89jfX291Zf6SDQfRG4P0IFbfbQ3btzA+vo61tbWsLCwQJVCOBwO9Ho9FAoFRkdHcfDgQSgUCprhGxkZQX9/PyYmJrBv3z74fD784Ac/wMrKCsLhMJO8/AfsdjsOHjwIq9WKF154AQaDgQZwgUAAi4uL8Pl8eP3117G+vo58Pr8tM/YCgQAmkwlms5kmpJLJJNbX17G6ukqD2dvfb+Re1Ov1OHbsGPbs2QO/34/r168jHA7j1KlT8Pl8rfhIjx1y4DMYDHj22Weh0+mobLzRaITdbqd7J4/Hg1AoRKPRQLlcRi6Xox0HJAHB5XJhs9nw2c9+FgBo0Ecy+alUCh6PhwbF3YBYLIbD4YBWq8XXvvY1HD58mHZV+P1+vPHGG7TCnUwm6cFZp9Ph85//PHp6ejA5OYmhoSFYLBZoNBpUKhXq99WNCIVCyGQy6HQ69PX1ob+/nx6WPR4PTpw4Ab/fz0yCb4OsmVgshkajgVQqxdjYGKxWK4Bb+7VSqcTk5CTkcjn8fj8ikQhWVlZw7tw5JBIJzM/Pt83MS8sCDQ6HQ6VW9Xo9lbBVKpUbhr/Jg0zk9EqlEqLRKAKBAPx+P/x+P6RSKfx+P6rVKsRiMX1Jms1m2l/ePOxGXrrN0nPdBMlIE8UuHo9HHb9TqVTb3HztDhmk12q1MBqNUKvVkMvltKKWSqUQj8c7vjWAfE5iSNj8TBDp3kKhgGg0Cr/fT9V9qtUqHWosFotQKBSQy+VwOBzI5/OQyWSQyWQ0EyoWi6HValEqlWA0GukBhMvl0iwoec67fdMha04qZgKBAGazmcp5OxwOmEwmKpUpEAio0IBarUY0Gt22rUEksyyTyWgWvVaroVgsUunQWq12R3aUrLVcLofBYIDD4QCXy0U4HAaXy6U/r7kltxsge61cLoder4fFYqHBBVGXMplMdPaKVIiy2eyGrgES+DZLfCuVSgCgnQGkqpRIJOif7/TKOfm85L7R6/XQarVQqVRIJpNIJBKIRCLwer3weDyIRCJIpVL0z1erVSQSCajValQqFZrwBNCV549m+Hw+7R5pbset1+vI5XKIRqNIJBJtk3l/kpBEO5/Pp55cBK1WS1tDdTodpFIp3RvIPaNSqeBwOKj6pUQiQaFQgNFo3CBH3Q6VopYFGiKRCHv27IHD4cBTTz2F5557jh5MmslkMohGo8hkMlhcXEQymcTFixcxNzeHbDaLaDQKHo+H1dVViMViSKVSiMVijI6O4uWXX6aRNHkhdjt8Ph87duyA1WrF2NgYVCoVstks5ufnadTL+GRIm53FYsFXv/pVDAwMYMeOHQCAUCiEs2fPwuPxUEnbTj7wSaVSWCwWWK3WO+Yystks1tfXEYlE8Pbbb+P69evIZDJIpVIb5EMDgQD4fD4WFxdx/vx5KJVKjI6OQqlU0iCNVEuEQiG+9rWvoVar0Y3G5/Ph6tWrSKVSWFpaohnBbkUul9O++OPHj2NoaIgeAqVSKQ0yyIFErVZjbGwMWq0Whw4dgl6vx40bN7C4uNjiT/LkkUgk6Ovrw8DAAFQqFYCPA41SqYRqtbqpXDcJdmUyGbRaLaxWK9RqNaxWKwKBAFwuF+r1OuLxeNdU2UiFYs+ePTh69CjMZjOOHDkClUpFWzFIawbxVsrn87h27RqWl5cRDoexuroKrVaLL33pS3TO0WAw0KQdoV6v4+LFi3j//ffhdruxtLSETCbT0UkYALBYLOjr64PNZsOLL74IjUaDWq2Ga9euYXp6GqdPn6ZtQJtVGYkqYTabRS6Xo1+FQqGjVQrvB7Vajd7eXtjtdohEInA4HCrS4PP5MDc3R9sdtxtKpZJKyb/00kt0doX8GmlBlslkEAgEUKlUkEgkNNAg3+Pz+XA4HDAajdBqtTCZTPB6vYjFYqjVatS7pZW0LNDg8/lUd3toaAiDg4ObzkuUSiUkk0lEo1EsLCwgFAphenoa8/PzGzJ6pOQtk8kgkUhQq9Wwa9cu1Go1Wm7aDpDyeG9vL4xGI0QiEbLZLMLhMPx+P7LZbKsvsSMgmQaVSoXJyUmMjY1BoVCg0Wggk8nQ2Yx4PN7xa0oGwZv7rAmkguj3+7G0tISZmRlqyrcZgUAAS0tLUCqVSCaTUKlU6O3thclkgkajgc1mg0KhwMTEBBQKBRKJBFKpFFVBC4fD8Hq9NCPYjcEGaVEjJqRHjhzBoUOHIBAINm1bazQaG7KBdrsd5XIZLperBVffeoRCIZ3rE4lEAEBNv6rV6qbVDOBj0QOyzuSeNxqNUCqVMJvN8Hg8XdPqQ8QZiD/Ovn37YDQasWPHDsjl8g2/t9FooFqt0iTCwsICLl++TNuTLRYL9u7dS2ewmv+O5p/h9Xpx4cIFxGIxxGKxjk7AAB+3qDgcDvT392PPnj1QqVSYmpqC2+3G/Pw8Tp8+fU/zPVIVJm1lt//vbg40xGIx9Ho9lEolPd+Vy2UUCgWk02lEIpEHmiXY7N3YqYhEIigUCjgcDhw9ehQGg4H+mkwmo/MXpDJxNxqNBk2kk2S7TCaDRqOBWCxui7a8Jx5okJcfGUIbGRmh2RECcdAsl8uYnZ3FqVOnkEgksLi4iHQ6jWAweNcBKtKXm0wm4ff7AaDjX3b3Q3O2bmRkBPv376czKqVSCcvLy1hcXGTycZ8AafMZGRnBoUOH0NPTA5vNBolEgmQyiWAwiNnZWVy8eBGxWKzjgwwAtHQrkUjueKFls1nMzc3Rw/8nlWHJgHihUIDH40E0GkU8HodcLqfOsAaDAZVKBRaLBTKZDHq9ngYv0WgUAoEAbrcbPp+va3rmiVPw4OAgxsfHodVqsXPnTprxE4lEG6SDSRsZ+T5BJBLB6XSCx+Nhenq6hZ/oySOXy2mFjFTGtsKLoFvbVwQCAUZGRmA2m7F7924MDg7SYfhGo4F0Oo1CoYBwOAyPx0OrialUis6dkd75crmM9fV18Pl8qNVq2O12OtfVaDRQKBRQKpWQSCSoslwnt0yRarZSqcTBgwfx7LPPQiqVIhKJIBgM4vz585ifn8fa2to9zW6b229J61mzal8nH5TvBWkLstvtOHDgAJxOJ6RSKWq1Gn23u91uFIvF+zIL5nK52LlzJ0ZGRiASiSCTyVAsFrGwsEDbl6PR6BP6dFsDqVaQ2aZSqQS1Wk1FjcrlMqrVKoLBIK025nI5VCqVDWvG5XJhMpnon1UoFNDr9RgcHES1WsXS0lLLzyktCTSIIk1vby8mJiag1+vvCDSy2SzS6TSuX7+O119/HZlMhhrd3OsBJZmCeDwOj8eDRqPR8rLRk4AMuRNn0uPHj9NNpVQqYXZ2Fjdu3NgWa/EokJapXbt24dd//deh0Whgt9vp4Xd9fR3Xrl3DmTNnkM1muyIbRe4dMuzZTCqVwtTUFDweD+Lx+Cd+XhJo5HI5rK2t3TEbxefzYbVa6eD45OQkjEYjDAYDduzYQVtWFhcXce7cOfj9/o7fjIkKnlAoxP79+/Grv/qr0Gq1GBgYoL25t7egEN8BsmYEoVCI/v5+qFQqnDp1qhUfp2UolUo4nU4aoIpEoi1TDST/BrfPKHUyIpEIu3fvxvj4OPbt24fx8XE6l1ir1RCLxRCPxzE1NYVTp04hFothamqKKkWRpB3ZQ5eWlpDP5zEwMIB6vU7Xql6v07agaDSKcDi8qepXJ8Hn86kK5rPPPotf+qVfQiwWw5kzZxAMBvHBBx/g6tWrqNVqd/2c5J1HfF9IW2Tz3Gm3BhtkBranpwdPP/00tFot7TRZXV3F1NQUVlZW6EzV/fy8w4cP4x/9o38EhUIBs9mMdDqNv/3bv8Xi4iJmZmYQi8U6Zi2blVHJ/F2hUIDVaoVWq0U+n6fqjmtra8hkMpidnaVeXc1nD6FQSBMJTqcTu3btQr1ex+joKIRCIfX5aiVPLNAgmWKFQgGr1QqDwQCDwUBl3sgLq1gsolwuY2VlBcFgEOvr68hmsygUCqhWqw90sLtXi0e3QYZ/xGIxlWMlfZCBQIDK7W2X9XgYeDwenSewWq1UhpDH46HRaCAYDNJZl26SJCQqWplM5o6XPmlTKRQKtE3lfrl9EyWba6FQQCwWQzAYRH9//wYPHJFIBIPBgFwu1zVzVXw+H3a7ncr86nQ6KBQKCAQCNBoNRKNR5HI5FItFmrFKpVKo1WrQarVQKBRQqVQwmUz0gNetQhb3QqFQUGdhoVC4YXi5WCwik8kgl8vd9bkkLWtkoBkAVVUiLZDkPdkNNKvIkfYL8vwVi0Wsrq7C7XZjeXmZGo+STgLSfkZarxQKBXV2VigU4HA4VHUun89jfn4e0WgUPp+PZmI7EdKqQlTzhoaGoFKpqMGvy+WiKkmflIknkq7EMZycd8ghnJyJus1LozmpJJFIoFKpIJPJ6BwQkUi/H7NCItIgkUig0Wig1WrpLG+9XodOp4PRaLxjtrfdIe+sdDqNUCiE+fl5BINBJJNJqNVq5PN5auHg9Xpp4i4ajaJUKm1o7+TxePB6vbRTqFar0dGERqOBGzdutPCT3uKJBRqkd2xoaAi/9Eu/RHs+rVYrzUoVi0X4/X7E43G8/vrrOH/+PM2Q3CtzwLhVhlOr1dDpdPRrdnYW586dg8vlQiQS2TYupA+LUCjEU089hV27dmHnzp1U8pHP5yOfz+PUqVN4/fXXqe5+t5BOpzE/P49CoYBcLrfh1zQaDQ4ePIhAIIC5uTm43e6HzsKRakc2m8XU1BRCoRB6e3uxZ88e+nvEYjEmJyfhcDgwPz/fFZuwVCrFyy+/jP3799OZNHLoy2QyOH36NBYWFuDxeDA/P089MxqNBux2OwwGAw4dOoSvfOUrVLFmK7P5nUJfXx9eeOEF2tLC5/Pp8HckEsHS0hI8Hs9dW2X5fD4dliQHk2Qyibm5Ofh8PqytrdGMYTfA5XKpNwuRAS4UClhbW0MsFsNrr72GM2fO0H75Wq1GW/aAjx2wSYD84osvYnR0FCaTCTweD9lsliayvvvd72JmZoYOk3dqpl4sFsNms8FoNOKVV17B4cOHEY/HMTc3h4WFBfzwhz9EIBC4LzlWs9mMgwcPUsGb/v5+OpdBFDdFItEDJ1A7AeJVRu4d0gJaKpUQi8Xu23tKLBZjYGAAer0eO3bswMDAAH3/CQQCjI2NQa1Ww+PxdNxeQWS4V1ZWcO3aNRrQC4VCquhYrVaRy+U2/P/bVfG4XC4CgQC0Wi1eeOEFHDx4EFKpFM888wzy+TxmZ2fx/vvvt3RtnligQWTOlEol7HY73Sya/TKI2U0ymUQgEIDb7aYum4x7Q2Y0SPaKz+ejWCwiGAzSUnYnPYRPEjI3RIy8HA4HlZbjcDj04EeGorttYyDKFESdolwu04wbcWEulUoQi8Xg8/mPHPST1ipi2NcMORyRAehOhmT2iAGf0+mEVqulGwkpjQcCAXg8HrhcLqysrNBhSfIzarUaEokE9Swh679dnmfS0iSXy6myCqlIVCoV+nwmEgl6YL7bzyHV3mZzOaICRBSDOjUbT2jOKJO5PSLx3rzHBoNBKlN9+2cm2XYyQ2UwGGA0GmEymSCRSGj3QTweRyQSofdvp1d6ybyaQqGAwWCgLTqxWIzOAUSj0U0/I6kyknksjUYDi8UCs9lM3erT6fSGhF83ViWbK4dExILIRpP5PVLRuBdcLhcCgQAajYYOlJM5QrI/kYDm9pbfToC0J5JWKCJD3bxWRE3vXu96DoeDeDyOarWKVCpFW25VKhWdvWw1T+xfR6lUwmazoa+vDzt27IDJZNog5wXckrK9du0a/H4/PB7PPTcNxkZItYi0/ACgQ2ukNYOxORKJBFarFTqdDvv376fyjzweD/F4HCdPnoTf78fCwkJXBmxEsSeXy+HmzZsQiUTo6elBT08P5HI5hoeHodFoMDQ0hHA4THXjGfdGIpHQw1lPTw+cTifq9To1MvvZz36GcDiMpaUlRCIRuuGQQVQi42qz2agnUKFQgNvtRjQaRTKZbPVHfOzweDzodDrI5XIMDg5ibGyMttuSwdJAIIALFy7ggw8+QCqVQiaTuePnkE2c7D86nY7+fOLQ3DyE38kQw1qj0YjR0VHs2rWLtjvlcjksLi7C7/cjFott2k7L4XCg0WigUqmwf/9+fOlLX4Jer8fQ0BBtySXvijfffJO2OBeLxY5fO/K+s9lsdA9YX1/Hu+++i0AggEwms0HWmyASiegMxsjICBwOB3p7e7F3714olUpotVo0Gg3qt+F2u6mDeLedcYRCIUZHR2G329Hb2wsOh0ONCROJBJaWlnDz5s17tjmSgW+z2Yxnn30W/f39tJpBgrNqtQqPx4OVlRVEo9GO3ZdJpZ8kNUll5n4FA4gSJlFoJcPidzO9bgVPJNAgZiI6nY6a8+n1+jt+H9lE3W434vE4G1x+AIRCIUwmEz2gNBoNpFIprKysdF2rz1YjEAg2HAgHBgboyyyXy2F6ehqrq6sIBAJdtykAH7/oyEwP0dh3Op00G0/WSK/Xo1QqbUmZuhuzec2QIVCDwQCdTgetVksHcNfW1nDixAl4vV6q/kOkV2UyGdRqNR16tFgsUKlU1KmZBHrdIsN6LzgcDhQKBT04WywW2jZWLpcRi8Won83c3Nym7zkyAyQQCGAwGGC1Wqm8K5G85fF4NODudIi5nFqthsVigcPhoL9WLpcRCoWo1Plm7zMOh0OFRUZGRvDiiy/SpCBRhMxms/D7/bh06RLC4TBisVhXrB1535lMJirUQFqnEonEXbPLRI1Lo9Fg586dmJiYgM1mw/j4OIRCIZ3HymQyCAaD9HzTjfsyj8eDxWLB4OAgFfpprmJHIpFPVBMklSW1Wo3R0VGMjY3BZDJtEM0gggaBQKDlqkqPCgkoHjZQL5VKKJVKdJa53Srejz3QIGWuvr4+HD9+HP39/RCJRDQ7V6lUsLq6isXFRQSDQaoesFlWinEn5HBCMs5Op5NWNAikNQi41XMvl8tpyVEkEkGr1UIkEtFhwEKhgGQySQ813S4PrFQqsXfvXtoPD9zq3Y5EInC5XFhYWMDa2hr1diAtRcR/orlsWygU7kudqd0gz+ONGzcQi8Vor7JIJIJcLqdSmeVyGXNzc/TF9iBVR1Lq1mq12LVrF5xO5x0eN82a850e1Ol0Ohw7dgw2mw0WiwUCgQDVahXpdBocDgejo6MwGo20dUWtVkOv10MikdCEgdFohEajoYOkQqGQ/rt0y7D8vSAtAOTzE/d6Ap/Pp73uAoFg07Y+4ujc09MDvV5PzSNJMobIN3f6YYUglUrR39+/IaAi5PN5uFwuuFyuO/ZYiUQCh8MBhUKBsbEx9PT0YHJykh6SyX49NTWFmzdv0gHwB/FBaHdIwoWoZnE4HPT29uL555+nEvtEGIM41CsUCkilUtjtdlp5I2aQAoGAzmPVajWEQiEsLCzQFtxupHk2aDNfoLvB4XBgNBqhUqlokGYymdDX1wetVguxWIxGo4FEIoH19XWEw2FMT09jYWEB4XC4rQ7WrabdkniPNdBoNkianJzEl770Jcjlcirxlkwmkcvl8P777+O1115DoVCgvcis1ef+EAqFkMlkMJlM2Lt3L/r7++9oSSPZPIFAAKfTCYfDAaVSSfseJyYmoFKp4HK54PP5EIlEqGcJeel2MzqdDs8//zz6+/upUkM4HMa1a9ewurqKK1euwO12UzUakm2RSqVwOp0bNvNQKNSRFSQiKX3q1CkIhUKoVCrs2LEDarUaEokEIpEI+/fvR09PD5RKJRKJBJLJ5AOV/smwm8lkwtNPP42JiYlNA41yuUz11TsZi8WCL37xi3TmRygUolKpUAnfgwcPolar0UOy0+mkkoQKhWKDKg2ZU6hUKhgcHKSzCp02APmg8Hg86PV6OBwOaDSaDfKzzapKJGmyWfuTRqPB+Pg4dSg2Go00gxiJRHD+/HkEAoGuaUVTKpUYHx+H3W6/I+mUy+UwOzuL5eVlmjghyOVyHDhwAFarFUePHsX4+DgdTiUiDtlsFh9++CHeeustpNNpBAKB+/JB6BTIvFoul6PvNXLgjcfjmJ6eRj6fp67qZPZKJBLRwOL257Y5eeJyuXD58mUEAoGuUTe7HS6XC7VaDbPZfMdZ5F7weDw4HA4MDQ1h7969+PznP0+rmSQx0Gg0EAgE8N5778Hn8+HkyZNYX1/v+KTUVtJuQQbwBAINciBTKBSQy+V0wLZarSIUCtEybjKZRKlUQrFYRK1W67iMcKuQSqW0NUMmk1HfDNIvq1KpIBKJoNPpwOfzqdayTCajUnFGoxEKhQKlUgk8Ho8enJPJJJLJJLhcLq10dBOkqqNUKqFUKmkfM/FhWV1dhcfjoYdBvV5P72fiumm1WiGVSunPVKvVdFOORqMoFAqb9vS2I2RDrNfrCIfDWFlZgclkglarpW7KWq0WNpsNw8PDiMfjdLjvfioQZPMhlSMiBtH8YiRKTIlEouPvNyLQIBaLaUVRJBJBpVJtGKwnWXoy6Fir1eihl5TBFQoFdDodHfIlFbVup9FoIJfLIZVKIZVKIZ1O00FT0pKr0WhgtVoxPDyMbDaLTCaDarVKW1NIpUin022QxSX3biKRoAmuboC4fG82fyEUCmEwGGhPd6FQgEQioW16pMpIJJiJcAFpayatKqT63W4tGo8KqTjK5XIqDsDj8aBQKNBoNGCxWFAsFml1UalU0gRAKBQC8LE5J9kniM9IPp9HIpFAPB5HJpPpqnVrpjnBfLsy3u2fmSRBdTodpFIpBgYGMDg4CJvNBqVSSX0myJmRiGj4fD74/f6ukqN+FEj7JzExJXtqu6i/PdadSigUore3FwaDAU6nE2q1mm6q+XweP//5z3Hx4kWsra0hGAzSAKNdFqcTcDqdOHToEIaGhqDT6SASiehwVKFQwMTEBEQiEQYGBqBSqTA6Ogqn00kVHcgBh2QTSOaFaMu/9dZbWF5epvJ+3fTvQtopduzYAYfDAZPJhHw+j3g8jsuXL+N73/seyuUyHSJ95plnMDk5Cb1ej56eHtq20dzKEY1GaRvgD37wAywuLlITyU6APH8XL15EOBzGzp07aeuOXq+HyWSCRqPB7t27EYlEcPHiRSSTSeoGfC8GBgZw6NAhaLVaTE5OQqPR3HFYLpfLWFxcxNraGgKBQEffbyQoaG73sVgsUKvV1EWZPGvlchlcLhfhcBi5XA4LCwtUHSibzeLAgQP4whe+AKFQSE0lt8IVu92pVCpYXFyEz+eDVqulbRSDg4PU9NVut0Ov12NkZATpdBqrq6vIZDJwuVwIBoMYHh7G4cOHaUIFAE3GhEIhzMzM0PdlN1AoFOD3++n/bsZgMOCVV16B3+/Hm2++iUQiAYfDgQMHDsDhcOALX/gCNdSUSqV0wNTv9+P73/8+FhcXsbKyQiXnuy0hmM1mMT8/Tw1/bTYbZDIZdDod1Go1jEYj9bLhcrmIxWLw+XyIxWK4ePEiUqkU9b4ZHx/H888/j2q1iuXlZUQiEUxPT2NmZoYO7HYjRHiBBGPk0NtsUkh+H/Guevnll2G327F//34MDw/TRChpvQduVeOy2SwWFxfxzjvvIBKJsBZ73FpHpVJJ57LIHlGr1drGO+2xBhqkv5aohpCDLXCrRBmJRKim91aq+ZCSJdmQ27GUtFVIJBIYDIYNN1i1WkU+n6dtBzKZDL29vVCr1bDZbDAYDJuaqZEMf71eh0ajgUwmg81mQz6fh8/n67o2DbFYDK1WC7VaTWWB0+k0crkcPTxzuVzo9XpoNBr09PRgZGQEBoMBvb291MgP+HjglPTNk2FKIgXZKYEGcCsLEo/H0Wg0oNFokEwmIZFIaDWHGG8qFAqqQkVmfO6F0+mkAa9CodhUvrZWqyGVSiESiXR8+yTJqhcKBfB4PJp5Iz3vZKYAAJ0tKJVKSKVS8Hg8VKUlk8mgp6dng79BN7/TmiHZYDL4HQ6HqYoNMSflcDiwWCwAbjnZk9kL0kJFzNI0Gg0EAgH9ubVajQZ63TKfAXwsH03WrVar0SynSCSCzWYDn8+HXq+HXC6HVquF3W6HzWaD1WqlCmfArcA/lUohGo1S+WViGtaNVCoVZDIZCIVCWtEnnRnkAN18cGsWZ1hdXUU8HofFYqGVX3K4JkmDZDKJdDrdwk/4ZLj9HdUs10oCDIFAQCu8RKWLqPM1z5UCHxvcpVIput6xWKwVH60tEQgEkEgkG6pIxHujHdrKHmugIZFIsHv3boyNjVGZs8cN6de12WzYuXMnLBbLA/UJdhrN5jXk4bTb7dBoNHA6nZiYmKAvyEajgY8++ggrKyvUSbf58KLX66HVaukwlkAgwK5du7Br1y7UajWsrKxQacNuCDhsNhsOHTqE3t5eiMVimj1dXV0Fl8vFF7/4RcjlcuzatQtarRa9vb0wm82oVCpYX1/fYKajUCggk8loZUgmk+HYsWMwGo2Ynp7GzZs3O2rNSFvEzMwMvvvd78JsNuPll1/GyMgIhEIhpFIpTCYTDh8+TJ1KP+nwQXTlhULhXV3GS6US5ufncenSJfh8vo5as9txu934v//3/9IWseaNs1wu0xafXC63Ye3K5TKi0SitchCZZXJoKRaL1MG52yHtfLVaDVNTU8jn8+jv7wePx6PqQEqlEjKZDBaLhap7lctl7N69G9lsFiqVCkajkbaxdTvZbBZLS0tIJpNYWlqCVqulXgRyuZzuxxqNBl/5yleg0+no4LhGo0Gj0cDKygr8fj+Wl5dx7tw5Op/QDS2N94J4EVQqFfzoRz/CxYsXYbFY4HQ6aRWyUqkgm83SPTQWi6FQKFBPEnJfqlQq2lYVDAY3HcDvRmq1GoLBIJaXlyGXyzE0NIRisUgHuBUKBTXf27lzJwwGAw4cOACtVgu9Xr+h9af5Z54/fx4ffvghlpaWuvoefFBI4o+0OROp7uXlZZqcafU++lgDDYFAQG8mk8n0RAINMhyt1+vR19cHo9HYFoYljwuSGSDVIi6XS53ByXpXKhUkEgmkUilMT0/jpz/9KdLpNMLh8IZAo7+/Hw6HAxaLBbt374bBYMBzzz0Hq9WKK1euQC6Xg8PhoFAotEWU/KhotVrs2LEDRqORDjz6fD7Mzc1BpVLhyJEj0Ov1OHLkCLRaLR3yC4VC1EwyFouhXC7T4VxymJbJZBgfH4dUKkUkEsHNmzdb/XEfCCICQIQZjEYjxsbGqE+LUqmkA5APy2YvPxLELSwsdLx8aygUws9//nPa5tT8/iNVR2LItFmfMfEzUCgUtKebDMuTbH2rN5AnAWkxWV1dhdfrRTAYxL59+9BoNOh8FVGeAm45MgOgcpEkm0r6wbudYrEIn89H/xsIBGgFQywWU7nbkZGRTf98pVJBIBDAzZs3cenSJfzwhz/cNgc7MgxeKBRw5swZiEQi9Pb2YnBwEIVCAevr6/S9T+SBm4fhiSAB6QggswXE2LDT32n3AzEYDYVCyGaz9J0VCoUQiUQglUrhcDiwd+9evPLKKzSxea8kQL1ex/z8PN55551NjV63O6SDgnQOVatV+Hw++Hy+thC5eCyBhlKphMVigdVqpWVEctjPZrPwer0IhUIIBAJUQ34rNkwul4vh4WGMj49jdHQUJpOJKkEAH288lUqFHqTaoX/tUWhet9vXMJlMIhqNIpPJYGlpCfF4nPpqbLbmROO7Xq9DLpcjm80inU7DaDRCJBJBo9GAw+EglUp1bKBBqjtEU59Uf8hhsLe3l86tkEypQCBAuVymXhqhUAjLy8solUq0KuR0OmGxWNDT0wO73Y5Go7FBJrFTIRn3WCyGS5cuIZPJQKfT0eCsOeAgpVvyvJFWO3K/kXI6n8+HUqns+mFmEkSQIKM50CBtO+QgvBmk1UUmk0EkElE9euJUvN18hojPRTQaxZkzZzA/P4+pqSnaiqfRaACABm0qlQoymQxKpRIGg4EmCkhrFfF/6OTnczOIL04+n8f09DRKpRJ27doFkUgEsVgMlUp1z2evXq/D7/djdnYWPp+v69bnfqlUKmg0GohGo+Dz+bRNiqjiNc+UcrlcqoCm1WphMBjA5XLh9/sRiUQwPz9PM8zdTq1Wg9/vB5fLxcjICBqNBp2n0ul0UCqVSCaTGBwchE6nozOijIejuRWN+AERQZtwONwWwe1j2ekNBgOefvppqk5jtVqpS2E0GsWHH34Iv9+PxcVFhEKhLXuR8Xg8HD16FF//+tfpPMLtcyHVapW2euTz+a4ZyLo9aGg0GggGg1RK78SJEwiHw3Rw7fYZDfJCJZmXVCoFu92O5557Dg6Hg2YhhEIhgsFgxyo9kLkhMrcyPj5OFYAAYO/evdi1a9cGaUKiTvP+++/jxIkTNNCoVqt0MHB8fByDg4M4cOAAzbaWSiXaJ92pkGpYJpPBD3/4Q8jlcmoCplarMTQ0BKVSibGxMeqMS9S7iLoPSSqQmSmi83+7xn8z3SAIQRRs7sUnfcZmdTgym9CcpNlOkB5vj8eD73//+7SCSxIE4+PjqNfrdGPdsWMHenp6MDw8DKPRuCHhFAwGMTs7C4/H0zV7AIG0m6XTabz77rs4ffo0PvvZz0KhUECr1WJ4ePiegUa1WsXCwgLee+892t633SAzAaSCTwzmmsVqmp9dYtinVCphs9nQ29uLQqGAubk5eDwenDlzBgsLC9tiLcvlMubn5+F2uzExMUErj3v27Nmwbnw+nw6Lbwdhi8cJmdEgSoaFQoEamXZdRYO89InkoFqtptljIrmXz+eRTCapM+ZWKFeQzB/JQpOyZXOQAdzqO0+n04hGo4jFYjQ70encPtRNMsg+nw9utxuhUIgGEURudTNIdpVUfMggUXMlqNNflKSioVAoIJFIIBQKN2y6QqFww0ZSKBSonKPP56NrSSoZRFWIGKhJpVJ6r5MBwE7PPJNgK5vNolKp0KpFPp+n6iIikQjZbBZSqRQymYzKG9brdaytrcHv94PH44HH41GBiO0g0/oowRKHw6GtoKSiQe5JMhu0HSHZ+mai0SitxpI2HzJAT953JPgvl8uIRCLweDyIRqNdm7EnQVe1WqXVbZLx/KT7kvR883g8pFKptnQbfhKQd98n3SPk3COTyehXoVBAJpNBOp2+rxm2boG0SnE4HHrekkgkEIvFdOasWX6VDOBXq1Xqoi4QCDZtpdpu998nQZQNm31LiAhJKpVqm8r3lu7wUqkUEokEZrMZg4OD9IPz+XzkcjnkcjmaDSYZua14eYlEIvT390Or1VJjp9v1+RuNBhYWFnDp0iWsrq7i3XffpXML3USpVMKpU6dw8+ZNLCws4PLly1SytVwuP1QlotFoIJlMwu12I51Od/QBh8/nw2azwWazQa/XA7j1+ZpffABoeXx9fR1/+Zd/SR3C/X4/DcAEAgFV9Tp+/DheeuklqNVqcLlcZDIZzMzM4NKlSwiFQh3/gqzX68jlctTMigQOly5dolUKolpGDsZkrsXlctE+cR6PB6vVit/8zd/EyMgInW1h3AkRaCAS4WSwNBwOw+PxbIvB0vulWaWM+N7s2bMHWq2WzpYVi0Wa4XvnnXfw9ttvI5PJtMVG/DgggVWlUsHq6irOnDmDwcFBjI2N3bOaKBKJ8JnPfAZDQ0O4cOECXn/9dWSzWTokzbgTkUhEJdKJ5HIqlcLKygq8Xm/X3mObQapBlUoFs7Oz+MlPfgKLxYJDhw5tqHZXKhUUi0VEo1GcPHkSyWSSeiyZzWaMjIzQJFQ3VLi3GuLTJJPJcPjwYbz66qsQCoXIZDLw+/24cuUKpqen20K9cUsDDT6fD7FYDKlUSgdGiRpSuVymZkpE4q1cLj/yzUMG/NRqNZXRJVnqZv3mWq2GeDwOt9sNj8cDv9/flRs1aVVZXl7G6uoq1tbWqGrL/a51s/4/yaKSf79isdjRDzyHw4FMJqMzBbcHGOR/k+pbIpHA/Pw8FhYWEI/HabsK6YskP8tsNqO3t5dKlpLgjvgidAMkwCQD4pvR7NRsMpnA5/PhdrupVDCPx6MzH9ls9pGGybsdUtEg0svAx1lq4r3BuAWZhyKQbCipqAO3ApBMJoN4PA6fz4fV1dV7zsh0A+SAViwWkUgkaHIPAO0mIK0r5ADI5XKpoEUgEIBSqaQVWsbmEKNbMtcnkUjoLFCnJ+ceBnJvJZNJuFwuNBoNZLNZaijH5XKpel4ikaA2B2SPIAaJwMedFrf7cGx3yNlXLBbDaDSit7cX+XwemUwGuVwOiUQC0Wi01ZcJYAsDDXKAI1J5zQZylUoF09PTOHfuHNxuN+bm5mg58VFQKpUwGo3Q6/V48cUX4XQ6MTo6uqGaUSwWMTc3R6Pmjz76CIlEomvLmPV6nQ46JpNJOkdwPw8nyTg7nU68+OKLMJvNkMlkyGQyVE6TDMh1KgKBAE6nE+Pj4zCbzfQ+aVboqtfrmJmZwYkTJ+D3+7GysoJEIkGzUqT1SqfT4cUXX4TD4cDk5CQkEgkCgQCuXbuGQCCAtbU1ZDKZbXUgJC7C5XIZ1WoVXC6XehSQAx3pH08kErSqxLgT0iZF3pWkfZFUNLbbjMaDQA7L4+PjUCgU4PF4KJfL8Hg8cLvdVC64k99ln4RQKKRGufv27cNTTz0Fo9EIPp+PVCqFM2fOYHl5GQ6Hg5qkWSwWiEQi2g7Z39+Pffv2IRgM4tKlS127bz4sJOEklUrhdDqpEAiZQT179ix1At9OkADW5XKhVqtBoVDgypUrkEgkEIlE4PP5NNDI5XJYW1tDrVbD8PAwHRpvdlxPpVLw+/1U5bGbkwP3i0wmw8TEBIxGI+x2OyQSCdLpNLxeL1Wdaxe2tKJBZjOMRiN9wVWrVepP8M477yAWi2FtbW1LXlgymQwOhwMOhwPHjh3D0NDQHYoapVIJCwsLWF1dxeXLl3HlypWudDQlkMxBs/ze/X5WolxgsVhw/PhxqgjRHGg0S/l1Inw+HxaLBYODc1PusQAAGANJREFUg5tqdpPD3OLiIt566y0kEgn4/f4NDy1pC3I4HHjmmWcwMjICjUYDkUiEeDyOkydPwu/3w+/3d001435p7mfe7LMT5SCiaLYVVc1uhggKkLmDarWKWCyGUCjUFmoi7QqXy4XRaMTg4CD9HpFtXV9fRyKR6No9AABVd3M4HHA6ndi7dy+OHj1K/Vyy2SzOnDmDDz74AHv37gWfz6ey6GTuCgDsdjsmJiagUqk6TqL7SUAy8GKxGBaLhQYa4XAYLpcLU1NT2y7IIDQaDSqxCnxs4kcqtCTQIJl5mUyGRqMBq9VKjWGLxSLC4TCi0SgikQiSySTbL/4BsViMoaEh2rJHvMCCwSDC4XBbtTk+linM2/0yGo0GbZdoLt0+7M+Wy+WQSCQYGBjAwYMHYTabYTAY6NQ98PGBplAo0EHBbDbblVks0t5UKpXow1ksFjct1zaXx4nqA9FXt1qt1PWaw+Egk8lgYWEB6XQay8vLNNDoZEhbVHPQRGY06vU6zT5ls1mIxWLa/ler1SCXyyEWi6HRaGC322E0GqHRaMDj8eB2u5HJZDA7Owu3203d7hmMh4XD4cBgMGBoaAhGo3GD03g3KeZtJUKhkLqAK5VK2gteKpWQTqcRCATg9Xq7ygn8dqRSKTWq3b17N/r6+uB0OqmAw8LCwoZ2FbfbjevXr8NqtcLpdFIDWB6PB6FQCI1Gg3Q63dWiDQ8LkfJ3OBzo6emB1WpFIpGglbNuFRp4GMheSw7AZP/lcrkQCoV0YJyItJA/k8vlWFJqE4RCIYxGIywWC21JDoVCmJubg9/vb6tE1GN/c5C+OuLhQOYFHhZSErfZbDh27Bj+8T/+x9S0icyDAKBZU/L3zs7OIhQKdV2gQT4vUQUCgFQqhWQyualXBsnAkPI4MaYzm804duwY9u7di0QigfX1dfj9fnz3u9/F7OwsPeAAna38QFRpMpkMSqUS/SwkAHG5XFhfX0ckEoFSqaRupTKZDE6nEyaTCUajEf39/XSGpVqt4sKFCzh16hQCgQBmZmbuasLGYNwvfD4fY2Nj+MxnPgOVSkXbqJLJJJLJJAtkN0Eul2P//v2wWq2wWq0AblWF4vE4/H4/bty4genp6baQfHxc6PV6PP300zCbzXj11VexY8cOWml0u934/ve/D7fbjaWlJQSDQSQSCSwvL2NkZAQTExNUOU4ikVBZ80qlQg9/jI+x2Ww4fvw4enp6cOTIEWg0Gvy///f/8O6778Ln822rttn7pVwubwgayEyGWq2mXyQhSnxzAoHAtq0M3Q2xWIzR0VEMDQ1BJBIhHA5jdnYWP//5zxGPx5FIJFp9iZQnlqKo1WqPFGSQwUiSgbfZbDSj3CxlS6RYiXtnLBbb0uHzdoYEHaRa0WyCQ6oYxENCKpXSh5pk50mwVq1WEYlENsjidgtEPSmVStFArFl1irSPKRQKWK1W8Pl8mEwmSCQSWCwWGAwGqFQqCIVCGkDn83kEAgEEg0HEYjEUCgUWZHwCt2vRN8/KCAQCCIVCtkkDdBicVBiJStKjJmy6FSL1qNVq6QA9EWcg/eDdKg1MpKKVSiXMZjOsVivdH+PxOG0/CYfDVKWLVMnIvUVm+oDOTig9bshAs1wuh9lspnLd9XodmUwG0WiUumIzNrLZmpAWZmKqSajVarSiwfbUW5AzCpFRJm2O5P2WTqeRzWbb6h3XMbVQiUSCvr4+qNVqvPrqqzhy5AgMBgPkcjl1dQZAB1EXFxfx7rvvIhgM4sqVK10rMdecFSBrYbVa0dPTA5/Ph2g0Cg6HA4lEAolEgs985jPYt28f9Ho9enp6qOM3n8+Hy+XCT37yEywtLeG9995DMpmE1+tt8SfcWsrlMqanpxGNRiGXy7Fv3z66afD5fAwPD8PhcGD37t147rnnqEcLqQRxuVyEQiGcO3eOumVHIhG43W4EAoGuaC973JDqERm8b2615PP5dMbL6/WyLNY/EAqF4Pf74fP54PF4EIvF2Ma7CRKJBIODg9R1GAAymQytVMbjcTq71m2YzWbYbDbs3LkTn//852EwGKBQKJDNZnHhwgX84he/QDAYxPT0NFKp1B374Wamac098uy9dgsOhwOVSgWJRILx8XE8//zzEAqF1IV5YWGBthp38xzQk6BYLGJhYQGzs7MIBoOtvpy2gMyHkvkMo9FIk5xEBCiTybTVO+6JBRoko/6wrUsCgQAajQYGgwEDAwOYnJykMwbN1Go1qs28uLiIYDBIVQu6FZKRJ5lgUoZMJBK0r5YYGvb29mLPnj0wGo0YGhoCn8+nB7/5+XmsrKxgYWGhbfSXt5parUY3zXg8jmq1SgMILpcLtVoNlUq1Qfa22byvVCohEAjA5/PB7/fj+vXrdOibtJYx7g0xwdpMWICo1ymVSpqR3q40V3mIcWQwGOxq74dHRSAQQKfTwWAwQCwWU2luIjParS2N5LkhlYy+vj7odDoqSR4IBHDjxg3EYjFEo9EN909zJpm0rBCq1Sr1z2GBxi1I8kkul0On08HhcKBer2N1dRXRaLQr/bkeJ81zo7fP9xJbgkgkwvbXf0AikUCv10Or1UKhUEAqldLWeWIM2W7vuMcaaJAXGI/HQ19fH44dO4ZYLIaFhYX77i8mMqJmsxnPP/88bDYbBgYGIBKJNrQGAbduyunpaczMzGB5eRk3b95EMplsq6GYraZYLCIej0OtVqNer0MgEGDPnj1QqVQIBoM4cOAAgFv9fCKRCEeOHEFvby8AwOv1Ip/PY2lpCclkEpcvX8bNmzcRjUa7tm2FtDsVCgVcu3YNP/3pT2EwGDA5OUk9WHg8HpVfLRQKNJDwer2IRCIIBoNYWVlBOp2m6j/t9mC3M6VSCaurq6hWq+jp6bmjdU2r1cJisSAcDlOhg+0EGWhWqVSwWq3Q6/Xwer1YXV1FKBRiQcYmyOVyaLVa9PT0oKenB06nEwqFAgCQTCYxPz8Pr9fbdYcV4kgtEokwMTGBT3/603A4HJBIJCiVSrh+/Tq8Xi+uXLmC9fX1TQMGp9OJp556Cj09PTAajRtEVdLpNFZXV+Hz+bb9TBBR8hKJRNixYwcGBgawY8cOyOVyZDIZeL1e+P3+rp7/eRyIxWL09/fDZDJRXyXifUbEfAKBQFcmPh8GtVqN0dFROJ1OyGQy8Hg8xONxOlvajlW0x17RIIoCfX19OH78OJaWluByue77paVUKtHT04O+vj4899xz6OnpgVqt3jTbWa/XMTc3h5/85CcIBAKYm5vr+pdjoVDYYMQkEAiwe/du7NixA8lkEpFIBACoiojdboder0cwGMTS0hJCoRDefvtteDweLC8vY319HUD39ueSQIPD4eD69evgcDgYGBiAxWKhGRUul4t0Ok1bVK5evYpIJIKpqSmsrKygWCx2rYLZk4AEGtlsFgcPHqTfbzQa4PP50Gq1MJvNWFlZaeFVtg6hUEjngUj/d6PRgMvlYpm9u6BQKGC32+F0OuF0OuFwOOhhOZVKYWFhAcFgsOuSTkSFUSaT0TYeMsidy+UwNTWFa9eu4ebNm/B4PJu2UzidTrzwwgswGo0wGo2QSqX01zKZDAtw/wHSNSCVSjE+Po4DBw5geHgYcrkc2WwWXq8XLpeLtXs+IMSvxW63Q6PRALi1T5fLZRQKBZrc69bk54Oi0WgwNDQEq9UKmUwGDoeDZDJJW0O7PtAgLRHlchmlUgnlchk8Hg8cDgdarRYDAwP0BZhKpaiSQKVSQaVSgUgkgl6vh1AopIZBer0edrsdZrN5g5szGbqKxWI0q5/L5ai6VCqVaqsetcdFNpuFx+OBSCTC6uoqcrkcFAoFRCIRZDIZdQQnGWO/34/19XUaaMTjcXi9XkSjUeTz+W1zcG40GjQLVa/XcebMGajVaojFYgiFQsRiMXp/Li0tUUfhYrGIcrm8Le6txwkRbWimuapB3hvbDQ6HA7FYDIfDAavVCrlcjkqlQgd2SYDL2AiXy6WyrGRmj8hYp9NpxGIxJBKJrmv/4XK5tNVQoVDQ/TEcDiOdTtO5nlQqteG+IX4GRL5WpVJBLpeDx+Oh0WhQmW+Px4NwOMxmgvBx+7ZarabKlxKJBKlUCtFolM5PdbN08uOAx+PRe5i0wlcqFWSzWWSzWTr3uN3fe0KhEHw+HyqVCiaTCQqFgrbpeTweuFwuRKPRtlynLQ00yuUynXxPpVJUAUMoFGJ4eBg9PT2oVCr48pe/jFQqhR/+8IeYm5uj/bNGoxHHjx+HXq/HyMgIzGYzncMQCARQKpXg8/lUwWptbQ0nT55EKBTC6dOnaYBBhv26bVPZDBIkeDwe2mrxzDPPYHh4GFKpFFqtlprQFQoFvPHGGzh9+jTC4TBWV1epIVilUtkW69WM3+9HJBIBn8/He++9Rw+3HA6H3j8ks0L+2+mGhe1Ic0BBsoZisXjb6faTapparcYzzzyDgYEBmEwmKtMdCASQTCZZZm8TBAIBzewTBUKivuLxeDA7O0slv7sJgUAAs9kMk8lEfZBisRhmZmYQCARw7tw5XL16FZVKZYPCGzEu1ev1GBgYgNPppHt1tVrFzMwMbt68iatXr2Jqaooatm5npFIphoeHYTKZsG/fPhw6dIjK5y8uLuL06dN0CJxx/wiFQphMJthsNshkMgC3zF7dbje8Xu+2UAz9JJoVQ/v6+jA5OYl6vU6TxSdPnsTJkydp0r7d2NKdnAQAxJyPHNrEYjE9PDQaDajVaiiVStjtdiSTSbpBmEwm2trjcDhgNpvp5tts9kKqJbFYDH6/H8FgEB6PB6FQCNVqdVtlm8nhl1SIACAYDNJeR+DjMmQ+n0cwGKTBSfN6bceHuPmhTKfTLb6a7QOpZpCv5nuPKKTJZDI6h7Vd7k9ikCaTyaDVaqHT6VCv15FIJJDNZul7rx0zVq2GVMFJzzJwa36NBBtEyKHb1o48L6SKTZIlJHFEZgpIqzHZk0mAYjAYoNPpqEkaEQZJJBLw+/200t3tLcifBBkAJ0ID5NAXiUQQiUQQjUaRSqXYHMFDQBKh5P1GjJZTqRSVXN4O7/97weFwoFAooNVqqeIZaZsPh8O0AtmubFmgQcqtxFJeIpFArVajr68PKpUKIyMjGB0dpX3wCoUCn/nMZ3Dw4EF64BOLxTAYDBCJRNTTAbi1yPl8Hmtra8hms/D7/YjFYpidncX7779PdaubszbbBXJoi8VieO+99yCVSnH69Gkolco7fg8xbAqHw1SZgM0ZMJ409Xod2WwWIpGIHmJ4PB74fD7EYjEmJiZgs9mwtraGS5cuoVQqbYu2Pp1Oh56eHgwNDWF0dBQ2mw0nT57E1NQUZmdnkclkWKBxFywWC44dO0bbzWq1GhYWFmhmvlgsduWBhVQm+vr6oNFo6N7rdDqh0WjwK7/yK/j0pz9Nfz+pHgqFQgwODsJoNNJgAwANzM6fP48f//jHzL8AoF0VVqsVL7/8MhUcAIDl5WW88cYbCAaDbAj8IUmn0zh58iRmZ2fB4/EgFouxsrKCixcvwu/3s1Y03JpjOX78OPbv34+enh7qdfbBBx/A5XLB7Xa3+hLvyZZWNIrFIorFInVgVSqVKBaL0Ol0MBqNAD7OqIhEIgwMDNzXzyWVDGIet7KyAr/fj/n5eSwtLW37bEuj0UA+n4fL5QIAzM7OtvaCGIx7QJ5nMu9CWvb4fD710VAoFNDr9bQKupnLfbchkUhgNpthNpuh1+uh0WgQjUYxNTUFv9+PUqm0raq1D4JSqYTT6YTRaKSZ+Wg0itXVVYTD4a4MMgBQ0ziNRkOfFdLHLRaLsXPnzjvaxYhnEAk0CKVSiQpdeDwezM/PP+mP05YQgzSVSoWhoSEMDAxApVIBAG1TI0atjAenWCxibW0NsVgM+/fvp1n65qTodofH46G3txd79+6FRCKhyTqXy0VVQ9uZx9IEnc/n4fV6IRaLkc1mIZfL6aC4TqfD4ODgJ2rkkwOIy+WicxyLi4vIZDLw+/2Ix+N0A2EwGJ1DrVajswazs7M4ffo0TCYTxsbGaIsll8tFT08P9u3bh3A4jBs3bnT9Rm42m3H48GFYrVYAt9SSwuEw/H4/EolEVx6UHwWSvRcIBJBIJBsM5+r1OsLhMJaWlhAMBrs2QCuVSpiZmUEkEqGdAcRNnsvlQqvV3mHER9qRBQIBisUiQqEQXC4X0uk07fleWlpq0SdqH/h8Png8HhwOBwYGBjA6Ogq9Xg+JRIJkMklNNKPRaNsZpHUS1WqVVs5OnjwJv9+PcDhMO1i6TSnuQeDxeJBKpVCr1TRhHwwGcfPmTRqIkUp3O/NYAo1sNotcLgcOh4OlpSXweDzkcjnkcjkMDQ3BbrffM9BoNBo0uzI9PY3XXnsNyWQSgUAAhUIB6XSatlKwzZfB6Cyq1SpisRhSqRSuXbsGANi5cydNQBBfgMHBQRw9ehQLCwtYXFxEsVjs6ufd4XDgU5/6FORyOYBb/g/BYBDr6+usZWoTiEmdTCaDVCrdICpQr9fh9/sxOzvb1UpdhUIBV65cgUAgoCo9er0eO3fuhEKhgMVi2TCvRyBVcOKj9P777yMUCuH8+fNt3+/9JOBwOFSEZmBgAM8++yycTicMBgOkUik8Hg+CwSA97HX7u+lxQhJPqVQK7777Lk6cOEHbvbf7GY9UJ7VaLUwmE8xmM5aXl3Hq1CkEAgEEAoGOMId8bLIuzY7KZKBxfX0d9Xod58+fp5vp3f4sGd6bm5tDJBKhgUrzbAGDwehc6vU6PUyTTE2xWKTqciqVCk6nE8lkkioJdeNMEfG4EYvF1MPA6/UilUpRWdHtMhD/IJCMvcFgoO12QqEQqVQKlUoFqVQKhUKhq2f3yPB2o9FALBaDy+WiBw+ZTIZgMLjpXttoNGjr4uLiItbX15FIJJDJZFAoFLZ9pwAJNMRiMbRaLRWpqdVqyOVy8Pl8WFtbQzgc7sp3UisgXS+sMvQxQqEQer0eBoOBJujC4TACgQCdS+4EHrt+JLl5FhYW4Ha7IRAI8Dd/8zd3uHrfDlGkyefzSKfTqNfr9IXKggwGo/Op1+twuVyIx+NIp9MwGAwwmUzYvXs3DAYDNXESi8X4m7/5G3qA7KZNnQhjyGQy6PV6aLVaxONx/OxnP8P6+jodZO6mz7xV8Pl87Ny5Ezt37sTExASGhoZQLBYxOzuLSCSC1dVVamDVzetXrVZRrVYxOzuL1dVVqjRFZjHutteSdSkWi8jn89SJmQW1H8uJKhQKTExM4IUXXgBwq1sjnU7jxIkTOH/+PILBYMcc9hidh0qlwqFDh2A0GpHJZHDhwgWcP38e58+fR6FQ6Jh24icmVN+8KKFQ6En9tQwGo40pFotUNS0QCKBer8Nut1PTPmIg1q3mfcRwjQzvksNeMBiEz+fr6rafR4X4QYjFYgCgpoahUIj2Lm+HzDwJCkgrFGNr4HA4NEgjAhbE+DEUCiEQCCCdTm/7oIzx+CBedAqFAoVCgdo6EG+RTmF7OWIxGIy2grQFrays4Ec/+hHEYjF++tOfUodj4JYvTDgc7sqWSaFQiCNHjmD37t1QKBQ4c+YM/H4/pqen4fV6t32v/L0ol8u4cOEClpaWaB8zkX0sFottL/nIaF9qtRqi0SjS6TTefPNNTE9Po16v05bulZUVRCKRbW8kx3g8EKUzsVgMkUgEDoeDGzduIBAIwOPxdFx7GQs0GAxGyyA9ucT4arvB4/EwMDCAQ4cOwe/3Y2lpCT6fD16vl1V+P4FarYbV1VWsrq62+lIYXUaj0aD+DfF4HFeuXGnxFTG2E6TtkXxxOBz4fD7cvHkTuVyu4xJuLNBgMBiMJwwZ/lYqlZDL5ZBKpchkMrh58ybNyDMYDAZj+6FQKGAwGCAWizE3Nwculwu/308FkTqtisYCDQaDwXjCEFUtjUZDg41YLIazZ89SmVIGg8FgbD/UajX6+/tRKBRw4cIFauvQqcIg3E/+LQwGg8HYarhcLjVPI1Qqla51sWYwGAzGJ0NapzgcDqrVKsrlckerwXEanXrlDAaDwWAwGAwGo21hFQ0Gg8FgMBgMBoOx5bBAg8FgMBgMBoPBYGw5LNBgMBgMBoPBYDAYWw4LNBgMBoPBYDAYDMaWwwINBoPBYDAYDAaDseWwQIPBYDAYDAaDwWBsOSzQYDAYDAaDwWAwGFsOCzQYDAaDwWAwGAzGlsMCDQaDwWAwGAwGg7Hl/H9DSnaX6D3L9wAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "train_data = tfds.as_numpy(data_train.map(preprocess).batch(32).prefetch(1))\n",
        "test_data  = tfds.as_numpy(data_test.map(preprocess).batch(32).prefetch(1))"
      ],
      "metadata": {
        "id": "QNar9uOB3JsH"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "class MLP(nn.Module):\n",
        "  \"\"\"A simple MLP model.\"\"\"\n",
        "\n",
        "  @nn.compact\n",
        "  def __call__(self, x):\n",
        "    x = nn.Dense(features=512)(x)\n",
        "    x = nn.activation.swish(x)\n",
        "    x = nn.Dense(features=10)(x)\n",
        "    return x"
      ],
      "metadata": {
        "id": "CYsX2hatjEPC"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "model = MLP()"
      ],
      "metadata": {
        "id": "46kAjrdXlKvl"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "key1, key2 = random.split(random.PRNGKey(0))\n",
        "random_flattened_image = random.normal(key1, (28*28*1,))\n",
        "params = model.init(key2, random_flattened_image) # Initialization call\n",
        "jax.tree_util.tree_map(lambda x: x.shape, params) # Checking output shapes"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3FaAo-QskQzq",
        "outputId": "561b185e-b6c6-48ba-94b3-3d99ceb59de0"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "FrozenDict({\n",
              "    params: {\n",
              "        Dense_0: {\n",
              "            bias: (512,),\n",
              "            kernel: (784, 512),\n",
              "        },\n",
              "        Dense_1: {\n",
              "            bias: (10,),\n",
              "            kernel: (512, 10),\n",
              "        },\n",
              "    },\n",
              "})"
            ]
          },
          "metadata": {},
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(model.tabulate(key2, random_flattened_image))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "WxfsB-G5-B3D",
        "outputId": "522718c9-9f40-42b5-a7f2-f393807bb8f5"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "\u001b[3m                                 MLP Summary                                 \u001b[0m\n",
            "┏━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
            "┃\u001b[1m \u001b[0m\u001b[1mpath   \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mmodule\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1minputs      \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1moutputs     \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mparams                  \u001b[0m\u001b[1m \u001b[0m┃\n",
            "┡━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
            "│         │ MLP    │ \u001b[2mfloat32\u001b[0m[784] │ \u001b[2mfloat32\u001b[0m[10]  │                          │\n",
            "├─────────┼────────┼──────────────┼──────────────┼──────────────────────────┤\n",
            "│ Dense_0 │ Dense  │ \u001b[2mfloat32\u001b[0m[784] │ \u001b[2mfloat32\u001b[0m[512] │ bias: \u001b[2mfloat32\u001b[0m[512]       │\n",
            "│         │        │              │              │ kernel: \u001b[2mfloat32\u001b[0m[784,512] │\n",
            "│         │        │              │              │                          │\n",
            "│         │        │              │              │ \u001b[1m401,920 \u001b[0m\u001b[1;2m(1.6 MB)\u001b[0m         │\n",
            "├─────────┼────────┼──────────────┼──────────────┼──────────────────────────┤\n",
            "│ Dense_1 │ Dense  │ \u001b[2mfloat32\u001b[0m[512] │ \u001b[2mfloat32\u001b[0m[10]  │ bias: \u001b[2mfloat32\u001b[0m[10]        │\n",
            "│         │        │              │              │ kernel: \u001b[2mfloat32\u001b[0m[512,10]  │\n",
            "│         │        │              │              │                          │\n",
            "│         │        │              │              │ \u001b[1m5,130 \u001b[0m\u001b[1;2m(20.5 KB)\u001b[0m          │\n",
            "├─────────┼────────┼──────────────┼──────────────┼──────────────────────────┤\n",
            "│\u001b[1m \u001b[0m\u001b[1m       \u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1m      \u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1m            \u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1m       Total\u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1m407,050 \u001b[0m\u001b[1;2m(1.6 MB)\u001b[0m\u001b[1m        \u001b[0m\u001b[1m \u001b[0m│\n",
            "└─────────┴────────┴──────────────┴──────────────┴──────────────────────────┘\n",
            "\u001b[1m                                                                             \u001b[0m\n",
            "\u001b[1m                     Total Parameters: 407,050 \u001b[0m\u001b[1;2m(1.6 MB)\u001b[0m\u001b[1m                      \u001b[0m\n",
            "\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "jax.devices()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "z1W4a--k0uJC",
        "outputId": "a51581f6-b307-451b-917f-e6b25293920b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[CpuDevice(id=0)]"
            ]
          },
          "metadata": {},
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "model.apply(params, random_flattened_image)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jramEGOJoNTd",
        "outputId": "6957dbae-3690-467e-d154-dccba3e0e91b"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Array([ 0.43500084,  0.20896661, -0.9779186 ,  0.3447541 ,  0.05475511,\n",
              "        0.29811084, -0.24472891, -0.30921277,  0.2945502 , -0.34386003],      dtype=float32)"
            ]
          },
          "metadata": {},
          "execution_count": 18
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "cWjXkxuj970o"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "INIT_LR = 1.0\n",
        "DECAY_RATE = 0.95\n",
        "DECAY_STEPS = 5"
      ],
      "metadata": {
        "id": "4MgIpDHBIV2g"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def loss(params, images, targets):\n",
        "  \"\"\"Categorical cross entropy loss function.\"\"\"\n",
        "  logits = model.apply(params, images)    # new\n",
        "  log_preds = logits - jax.nn.logsumexp(logits)\n",
        "  return -jnp.mean(targets*log_preds)"
      ],
      "metadata": {
        "id": "2SYzQg3Qmz-l"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "@jax.jit\n",
        "def update(params, x, y, epoch_number):\n",
        "  loss_value, grads = jax.value_and_grad(loss)(params, x, y)\n",
        "  lr = INIT_LR * DECAY_RATE ** (epoch_number / DECAY_STEPS)\n",
        "  return jax.tree_util.tree_map(    # new, better suited for pytrees\n",
        "      lambda p, g: p - lr * g, params, grads), loss_value"
      ],
      "metadata": {
        "id": "w0yt8f0TH0L1"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "num_epochs = 25"
      ],
      "metadata": {
        "id": "Ghj4FxExIsNv"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "@jax.jit\n",
        "def batch_accuracy(params, images, targets):\n",
        "  images = jnp.reshape(images, (len(images), NUM_PIXELS))\n",
        "  predicted_class = jnp.argmax(model.apply(params, images), axis=1)    # new\n",
        "  return jnp.mean(predicted_class == targets)\n",
        "\n",
        "def accuracy(params, data):\n",
        "  accs = []\n",
        "  for images, targets in data:\n",
        "    accs.append(batch_accuracy(params, images, targets))\n",
        "  return jnp.mean(jnp.array(accs))\n",
        "\n",
        "import time\n",
        "\n",
        "for epoch in range(num_epochs):\n",
        "  start_time = time.time()\n",
        "  losses = []\n",
        "  for x, y in train_data:\n",
        "    x = jnp.reshape(x, (len(x), NUM_PIXELS))\n",
        "    y = jax.nn.one_hot(y, NUM_LABELS)\n",
        "    params, loss_value = update(params, x, y, epoch)\n",
        "    losses.append(loss_value)\n",
        "  epoch_time = time.time() - start_time\n",
        "\n",
        "  start_time = time.time()\n",
        "  train_acc = accuracy(params, train_data)\n",
        "  test_acc = accuracy(params, test_data)\n",
        "  eval_time = time.time() - start_time\n",
        "  print(\"Epoch {} in {:0.2f} sec\".format(epoch, epoch_time))\n",
        "  print(\"Eval in {:0.2f} sec\".format(eval_time))\n",
        "  print(\"Training set loss {}\".format(jnp.mean(jnp.array(losses))))\n",
        "  print(\"Training set accuracy {}\".format(train_acc))\n",
        "  print(\"Test set accuracy {}\".format(test_acc))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0K9DAHaVIHII",
        "outputId": "531d7e4a-6185-40fe-c344-7b9142350bc5"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Epoch 0 in 5.89 sec\n",
            "Eval in 3.75 sec\n",
            "Training set loss 0.40118706226348877\n",
            "Training set accuracy 0.9405333399772644\n",
            "Test set accuracy 0.9416932463645935\n",
            "Epoch 1 in 4.43 sec\n",
            "Eval in 3.06 sec\n",
            "Training set loss 0.3758145570755005\n",
            "Training set accuracy 0.957716703414917\n",
            "Test set accuracy 0.9574680328369141\n",
            "Epoch 2 in 3.87 sec\n",
            "Eval in 3.31 sec\n",
            "Training set loss 0.3697490096092224\n",
            "Training set accuracy 0.9668000340461731\n",
            "Test set accuracy 0.9651557207107544\n",
            "Epoch 3 in 4.40 sec\n",
            "Eval in 3.06 sec\n",
            "Training set loss 0.36639681458473206\n",
            "Training set accuracy 0.9719333648681641\n",
            "Test set accuracy 0.96875\n",
            "Epoch 4 in 3.79 sec\n",
            "Eval in 3.92 sec\n",
            "Training set loss 0.3641383647918701\n",
            "Training set accuracy 0.9758833646774292\n",
            "Test set accuracy 0.9709464907646179\n",
            "Epoch 5 in 3.79 sec\n",
            "Eval in 3.05 sec\n",
            "Training set loss 0.3624792695045471\n",
            "Training set accuracy 0.97843337059021\n",
            "Test set accuracy 0.9731429815292358\n",
            "Epoch 6 in 4.95 sec\n",
            "Eval in 3.30 sec\n",
            "Training set loss 0.3611924648284912\n",
            "Training set accuracy 0.9805833697319031\n",
            "Test set accuracy 0.9743410348892212\n",
            "Epoch 7 in 3.74 sec\n",
            "Eval in 3.22 sec\n",
            "Training set loss 0.3601546883583069\n",
            "Training set accuracy 0.9823166728019714\n",
            "Test set accuracy 0.9758386611938477\n",
            "Epoch 8 in 4.05 sec\n",
            "Eval in 3.02 sec\n",
            "Training set loss 0.3592933118343353\n",
            "Training set accuracy 0.9839500188827515\n",
            "Test set accuracy 0.9765375256538391\n",
            "Epoch 9 in 3.70 sec\n",
            "Eval in 3.92 sec\n",
            "Training set loss 0.35856199264526367\n",
            "Training set accuracy 0.9851000308990479\n",
            "Test set accuracy 0.9776357412338257\n",
            "Epoch 10 in 3.78 sec\n",
            "Eval in 3.06 sec\n",
            "Training set loss 0.3579297661781311\n",
            "Training set accuracy 0.986383318901062\n",
            "Test set accuracy 0.9785343408584595\n",
            "Epoch 11 in 4.24 sec\n",
            "Eval in 3.12 sec\n",
            "Training set loss 0.3573743999004364\n",
            "Training set accuracy 0.9872000217437744\n",
            "Test set accuracy 0.9788338541984558\n",
            "Epoch 12 in 3.75 sec\n",
            "Eval in 3.00 sec\n",
            "Training set loss 0.35687994956970215\n",
            "Training set accuracy 0.9879833459854126\n",
            "Test set accuracy 0.9797323942184448\n",
            "Epoch 13 in 4.34 sec\n",
            "Eval in 3.00 sec\n",
            "Training set loss 0.35643470287323\n",
            "Training set accuracy 0.9888833165168762\n",
            "Test set accuracy 0.9805311560630798\n",
            "Epoch 14 in 3.70 sec\n",
            "Eval in 5.83 sec\n",
            "Training set loss 0.3560302257537842\n",
            "Training set accuracy 0.989633321762085\n",
            "Test set accuracy 0.980930507183075\n",
            "Epoch 15 in 3.70 sec\n",
            "Eval in 3.05 sec\n",
            "Training set loss 0.3556598424911499\n",
            "Training set accuracy 0.9903500080108643\n",
            "Test set accuracy 0.980930507183075\n",
            "Epoch 16 in 4.40 sec\n",
            "Eval in 3.01 sec\n",
            "Training set loss 0.35531842708587646\n",
            "Training set accuracy 0.9909166693687439\n",
            "Test set accuracy 0.9813298583030701\n",
            "Epoch 17 in 3.74 sec\n",
            "Eval in 3.77 sec\n",
            "Training set loss 0.355002224445343\n",
            "Training set accuracy 0.9913666844367981\n",
            "Test set accuracy 0.9817292094230652\n",
            "Epoch 18 in 3.80 sec\n",
            "Eval in 3.04 sec\n",
            "Training set loss 0.3547080159187317\n",
            "Training set accuracy 0.9919666647911072\n",
            "Test set accuracy 0.981829047203064\n",
            "Epoch 19 in 3.90 sec\n",
            "Eval in 3.70 sec\n",
            "Training set loss 0.3544332683086395\n",
            "Training set accuracy 0.9925166964530945\n",
            "Test set accuracy 0.9822283983230591\n",
            "Epoch 20 in 3.78 sec\n",
            "Eval in 3.10 sec\n",
            "Training set loss 0.35417595505714417\n",
            "Training set accuracy 0.9927000403404236\n",
            "Test set accuracy 0.9822283983230591\n",
            "Epoch 21 in 4.45 sec\n",
            "Eval in 3.08 sec\n",
            "Training set loss 0.3539343774318695\n",
            "Training set accuracy 0.993066668510437\n",
            "Test set accuracy 0.9824280738830566\n",
            "Epoch 22 in 3.91 sec\n",
            "Eval in 3.50 sec\n",
            "Training set loss 0.35370710492134094\n",
            "Training set accuracy 0.9934666752815247\n",
            "Test set accuracy 0.9821285605430603\n",
            "Epoch 23 in 3.95 sec\n",
            "Eval in 3.07 sec\n",
            "Training set loss 0.3534928560256958\n",
            "Training set accuracy 0.9937500357627869\n",
            "Test set accuracy 0.9823282361030579\n",
            "Epoch 24 in 3.82 sec\n",
            "Eval in 3.64 sec\n",
            "Training set loss 0.3532904386520386\n",
            "Training set accuracy 0.9941166639328003\n",
            "Test set accuracy 0.9823282361030579\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "C95WsgsPdxze"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}